Каковы различия Массива и Хеша в PHP?

Вы также можете обновить основной поток, используя NSOperationQueue.mainQueue(). Для многопоточности NSOperationQueue - отличный инструмент.

Один из способов это можно записать:

NSOperationQueue.mainQueue().addOperationWithBlock({
     self.tableView.reloadData()       
})

Обновление : DispatchQueue - путь для этого

5
задан dreftymac 9 April 2019 в 16:29
поделиться

2 ответа

Оба объекта, которые вы описываете, являются массивами. Единственное различие между ними состоит в том, что вы явно задаете ключи для второго, и поэтому они известны как ассоциативные массивы . Я не знаю, откуда вы взяли терминологию Hash (Perl?), Но это не то, что они называют в PHP.

Так, например, если бы вы сделали это:

$foo = array(1,2,3,4,5);
print_r($foo);

Результатом было бы:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Как видите, ключи для доступа к отдельным значениям, которые вы ввели, были созданы для вас, но тем не менее существуют. Так что этот массив, по сути, тоже ассоциативный. Другой "тип" массива точно такой же, за исключением того, что вы явно говорите: «Я хочу получить доступ к этому значению с помощью этого ключа» вместо автоматических числовых индексов (хотя предоставленный вами ключ также может быть числовым).

$bar = array('uno' => 'one', 'dos' => 'two');
print_r($bar);

выведет :

Array
(
    [uno] => one
    [dos] => two
)

Как и следовало ожидать, выполнение print $ bar ['one'] выведет uno , а выполнение $ foo [0] из в первом примере будет выведено 1 .

Что касается функций, функции PHP в большинстве случаев будут принимать любой из этих «типов» массива и делать то, что вы хотите, но есть различия нужно знать, так как некоторые функции будут делать с вашими индексами забавные вещи, а некоторые - нет. Обычно лучше прочитать документацию перед использованием функции массива,

15
ответ дан 18 December 2019 в 09:52
поделиться

На самом деле в php нет массивов - есть только ассоциативные массивы (которые в основном представляют собой хеш-таблицу)

Попробуйте выполнить

$ar=array("zero","one","two","three","four");
unset($ar[3]);

, это удалит «тройку» из array, но вы заметите, что ключи массива (массив не ассоциативен) останутся теми же (0,1,2,4) - на любом нормальном языке он изменит нумерацию ключа с «четыре» на 3.

1
ответ дан 18 December 2019 в 09:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: