Как я могу добавить пары значений ключа в массив?
Это не сработает:
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'] = '[email protected]';
$data = ['user_email' => [email protected]']+ $data
.
Мой 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'];
}
}