вставка в многомерный массив php

#php #arrays

#php #массивы

Вопрос:

Я пытаюсь вставить переменные в массив, используя цикл foreach. Это цикл foreach, который я пытаюсь реализовать с

 foreach($rows as amp;$url) {
      $link = array("url");
      array_push($url, "hello World"); 
}
  

И это результат, который я получаю.

 Array
(
    [0] => Array
        (
            [cat_id] => 1
            [id] => RT
            [name] => root
            [parent] => 0
            [0] => hello World
        )

    [1] => Array
        (
            [cat_id] => 2
            [id] => CI
            [name] => Civil amp; Interior Works
            [parent] => 1
            [0] => hello World
        )

)
  

но я бы хотел, чтобы результат был таким.

 Array
(
    [0] => Array
        (
            [cat_id] => 1
            [id] => RT
            [name] => root
            [parent] => 0
            [url] => hello World
        )

    [1] => Array
        (
            [cat_id] => 2
            [id] => CI
            [name] => Civil amp; Interior Works
            [parent] => 1
            [url] => hello World
        )

)
  

Если я передам переменную $link = array("url"); в array_push($link, "hello World"); , ничего не произойдет.

если я удалю ссылку из foreach($rows as amp;$url) , цикл вообще не будет работать. Пожалуйста, посоветуйте.

Ответ №1:

Просто добавьте значение под требуемым ключом:

 foreach($rows as amp;$row) {
    $row['url'] = "hello World";
}
  

Комментарии:

1. спасибо, что сработало… значит, array_push не требовался??

2. array_push добавляет элемент в конец массива, его не волнуют ключи. Если вам нужен конкретный ключ — используйте ['key'] синтаксис.

3. Я кое-что заметил… если я использую amp;$row ссылку … Я теряю один цикл … последний вставленный элемент не извлекается.

4. Создайте пример вашего кода и задайте новый вопрос.