我怎样才能将键值对添加到数组?
如何将键值对添加到数组?
这不会工作:
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"]
是存储$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中,数组实际上是地图,键可以是整数或string。 查看PHP:数组 – 手册了解更多信息。
您可以创build单值数组键值为
$new_row = array($row["datasource_id"]=>$row["title"]);
在while循环中,然后在循环中使用array_merge
函数来合并每个新的$new_row
数组。
您可以在您的应用程序中使用此function将密钥添加到索引数组。
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']; } }