как я могу добавить пары значений ключа в массив?

Как добавить пары значений ключа в массив?

Это не сработает:

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 ) 

Используйте синтаксис квадратной скобки :

 if (!empty($row["title"])) { $catList[$row["datasource_id"]] = $row["title"]; } 

$row["datasource_id"] является ключом, в котором хранится значение $row["title"] .

 $data =array(); $data['user_code'] = 'JOY' ; $data['user_name'] = 'JOY' ; $data['user_email'] = 'joy@cargomar.org'; 

Мой PHP немного ржавый, но я считаю, что вы ищете индексированное назначение. Просто используйте:

 $catList[$row["datasource_id"]] = $row["title"]; 

В PHP массивы – это фактически карты, где ключи могут быть целыми или строками. Ознакомьтесь с PHP: Массивы – Руководство для получения дополнительной информации.

Вы можете создать ключ-значение с одним значением массива как

 $new_row = array($row["datasource_id"]=>$row["title"]); 

внутри цикла while, а затем использовать функцию array_merge в цикле для объединения каждого нового массива $new_row .

Вы можете использовать эту функцию в своем приложении для добавления ключей к индексированному массиву.

 public static function convertIndexedArrayToAssociative($indexedArr, $keys) { $resArr = array(); foreach ($indexedArr as $item) { $tmpArr = array(); foreach ($item as $key=>$value) { $tmpArr[$keys[$key]] = $value; } $resArr[] = $tmpArr; } return $resArr; } 

Нет необходимости в функции array_push. Если вы хотите добавить несколько элементов, это отлично работает. просто попробуйте это, и это сработало для меня

 class line_details { var $commission_one=array(); foreach($_SESSION['commission'] as $key=>$data){ $row= explode('-', $key); $this->commission_one[$row['0']]= $row['1']; } }