2012-06-02 3 views
5

Если у меня есть следующий массив. Какой был бы лучший способ добавить элемент в list[] для последнего элемента $myArray[]? Обратите внимание, что list[] имеет числовые индексы (то есть не ассоциативно). Благодаря!Добавление элементов в последний элемент массива

$myArray[] = array('name' => 'hello', 'list' => array()); 
+1

Ваш вопрос немного неясен. Не могли бы вы привести пример того, как должен выглядеть ваш результат? –

ответ

5

Если $ туАггау не является ассоциативным

array_push($myArray[count($myArray)-1]['list'], 'new element'); 

или

$myArray[count($myArray)-1]['list'][] = 'new element'; 

с помощью этого метода вы изменить положение указателя массива.

+0

Да, это, скорее всего, сработает. Не знаю, было ли более чистое решение, используя end() – user1032531

+0

, когда вы используете конец, вы получаете копию последнего значения, а не ссылку. Поэтому, если вы измените значение, это не повлияет на массив. Если вы используете 'end', вы должны сначала вызвать его, а затем использовать' key' для получения ключа последнего элемента и затем изменить массив. Если '$ myArray' не является ассоциативным, вы можете это сделать. – clentfort

+0

Спасибо !!!!!!!!!! – user1032531

4

Вы можете сделать это следующим образом:

$last = array_pop($myArray); // remove last element of array 
$last['list'][] = "new element"; // add element to array 
$myArray[] = $last; // add changed last element again 
+0

Похоже, что это сработает. Спасибо – user1032531

-2

array_push функция делать.

array_push() 
+0

После [руководства PHP] (http://php.net/manual/en/function.array-push.php) это имеет тот же эффект, что и '$ array [] = $ var;', который он использовал в его код уже. Поэтому я не думаю, что он ищет это. – noob

1
$myArray[count($myArray)-1]['list'][]="something to go in 'list' array";//this shall append 
//to the second dimension array with keyname 'list' 
+0

Вместо $ myArray [0], он должен будет указать на последний элемент $ myArray, а не на 0. – user1032531

+0

А, мой плохой. Проверьте мое редактирование. –

+0

Gotcha. Такое же решение, как и клиноп. Благодаря! – user1032531

0

Существует на самом деле более красивый способ (на мой взгляд):

$ref = &$myArray[]; 
$ref['list'][] = 'new item' 

Как вы можете видеть $ реф - это ссылка на последний элемент $ туАггау, так что вы можете изменить последний элемент путем изменения $ ref;

Смежные вопросы