Как добавить пары ключ-значение в массив?
Это не сработает:
public function getCategorieenAsArray(){
$catList = array();
$query = "SELECT DISTINCT datasource_id, title FROM table";
if ($rs=C_DB::fetchRecordset($query)) {
while ($row=C_DB::fetchRow($rs)) {
if(!empty($row["title"])){
array_push($catList, $row["datasource_id"] ."=>". $row["title"] );
}
}
}
return($catList);
}
Потому что это дает мне:
Array ( [0] => 1=>Categorie 1 [1] => 5=>Categorie 2 [2] => 2=>Caterorie 2 )
И я ожидаю:
Array ( [1] =>Categorie 1 [5] => Categorie 2 )
Ответы:
Используйте синтаксис квадратных скобок :
$row["datasource_id"]
- это ключ, в котором$row["title"]
хранится значение.источник
источник
$data = ['user_email' => joy@cargomar.org'] + $data
.Мой PHP немного ржавый, но я считаю, что вам нужно индексированное назначение. Просто используйте:
В PHP массивы на самом деле представляют собой карты, где ключи могут быть либо целыми числами, либо строками. Ознакомьтесь с PHP: Массивы - Руководство для получения дополнительной информации.
источник
Вы можете создать пару "ключ-значение" массива с одним значением как
внутри цикла while, а затем используйте
array_merge
функцию в цикле для объединения каждого нового$new_row
массива.источник
Вы можете использовать эту функцию в своем приложении для добавления ключей в индексированный массив.
источник
Нет необходимости в функции array_push. Если вы хотите добавить несколько элементов, она отлично работает. просто попробуйте это, и это сработало для меня
источник