Php 如何使用键在数组中追加值而不被覆盖
我在foreach循环中得到结果,现在我想用键形成一个新数组,用新数据形成该数组。现在,当我尝试分配数据时,它会被覆盖到上一个,因为它不会得到新的索引。到目前为止,我是如何做到这一点的:Php 如何使用键在数组中追加值而不被覆盖,php,arrays,Php,Arrays,我在foreach循环中得到结果,现在我想用键形成一个新数组,用新数据形成该数组。现在,当我尝试分配数据时,它会被覆盖到上一个,因为它不会得到新的索引。到目前为止,我是如何做到这一点的: foreach ($result as $key) { $pickup_location = $key->locationid; if (isset($pickup_location)) { $pickup_location = $this->db->get_w
foreach ($result as $key) {
$pickup_location = $key->locationid;
if (isset($pickup_location)) {
$pickup_location = $this->db->get_where('locations', array('id' => $pickup_location ))->row();
if (!empty($pickup_location)) {
$supplier_dashboard['pickup_location_name'] = $pickup_location->name_en;
}
}
$dropoff_location = $key->location_dropoff;
if (isset($dropoff_location)) {
$dropoff_location = $this->db->get_where('locations', array('id' => $dropoff_location ))->row();
if (!empty($dropoff_location)) {
$supplier_dashboard['dropoff_location_name'] = $dropoff_location->name_en;
}
}
$car_make = $key->car_id;
if (isset($car_make)) {
$car_details = $this->db->get_where('chauffeur_rates', array('chauffeur_id' => $car_make))->row();
if (!empty($car_details)) {
$supplier_dashboard['car_make'] = $car_details->chauffeur_make;
}
}
}
return $supplier_dashboard;
}
我得到的数组是:
Array
(
[pickup_location_name] => Seoul Downtown
[dropoff_location_name] => Disneyland Paris
[car_make] => makecar
)
然而,我至少有7个位置名称和汽车品牌,而不是作为一个新的数组添加它覆盖了前一个,我应该得到的结果如下
Array
[0](
[pickup_location_name] => Seoul Downtown
[dropoff_location_name] => Disneyland Paris
[car_make] => makecar
)
Array
[1](
[pickup_location_name] => Seoul 1
[dropoff_location_name] => Disneyland 1
[car_make] => makecar
)
Array
[2](
[pickup_location_name] => Seoul 2
[dropoff_location_name] => Disneyland 2
[car_make] => makecar
)
... upto 7
您必须将$key添加到添加记录的数组中 使用 而不是
$supplier_dashboard['pickup_location_name'] = //your code
您必须将$key添加到添加记录的数组中 使用 而不是
$supplier_dashboard['pickup_location_name'] = //your code
您直接在最顶端的集合中设置值,而不是将项添加到数组中 安装
$myobject['foo'] = $value;
您需要执行(其中,$iteration
是循环中的当前位置)
请尝试以下操作:
$carItemNumber = 0;
foreach ($result as $key) {
$pickup_location = $key->locationid;
if (isset($pickup_location)) {
$pickup_location = $this->db->get_where('locations', array('id' => $pickup_location ))->row();
if (!empty($pickup_location)) {
$supplier_dashboard[$carItemNumber]['pickup_location_name'] = $pickup_location->name_en;
}
}
$dropoff_location = $key->location_dropoff;
if (isset($dropoff_location)) {
$dropoff_location = $this->db->get_where('locations', array('id' => $dropoff_location ))->row();
if (!empty($dropoff_location)) {
$supplier_dashboard[$carItemNumber]['dropoff_location_name'] = $dropoff_location->name_en;
}
}
$car_make = $key->car_id;
if (isset($car_make)) {
$car_details = $this->db->get_where('chauffeur_rates', array('chauffeur_id' => $car_make))->row();
if (!empty($car_details)) {
$supplier_dashboard[$carItemNumber]['car_make'] = $car_details->chauffeur_make;
}
}
$carItemNumber++;
}
return $supplier_dashboard;
您直接在最顶端的集合中设置值,而不是将项添加到数组中 安装
$myobject['foo'] = $value;
您需要执行(其中,$iteration
是循环中的当前位置)
请尝试以下操作:
$carItemNumber = 0;
foreach ($result as $key) {
$pickup_location = $key->locationid;
if (isset($pickup_location)) {
$pickup_location = $this->db->get_where('locations', array('id' => $pickup_location ))->row();
if (!empty($pickup_location)) {
$supplier_dashboard[$carItemNumber]['pickup_location_name'] = $pickup_location->name_en;
}
}
$dropoff_location = $key->location_dropoff;
if (isset($dropoff_location)) {
$dropoff_location = $this->db->get_where('locations', array('id' => $dropoff_location ))->row();
if (!empty($dropoff_location)) {
$supplier_dashboard[$carItemNumber]['dropoff_location_name'] = $dropoff_location->name_en;
}
}
$car_make = $key->car_id;
if (isset($car_make)) {
$car_details = $this->db->get_where('chauffeur_rates', array('chauffeur_id' => $car_make))->row();
if (!empty($car_details)) {
$supplier_dashboard[$carItemNumber]['car_make'] = $car_details->chauffeur_make;
}
}
$carItemNumber++;
}
return $supplier_dashboard;
每次循环数组的键总是相同的,这就是为什么要忽略结果。你需要放一把独一无二的钥匙。你可以试试这个
$i = 0; //First key
foreach ($result as $key){
$supplier_dashboard[$i]['pickup_location_name'] = $pickup_location->name_en;
$i++; //add +1 to the key so the next element not overrides
}
每次循环数组的键总是相同的,这就是为什么要忽略结果。你需要放一把独一无二的钥匙。你可以试试这个
$i = 0; //First key
foreach ($result as $key){
$supplier_dashboard[$i]['pickup_location_name'] = $pickup_location->name_en;
$i++; //add +1 to the key so the next element not overrides
}
已经这样做了,它的
严重性:警告消息:非法偏移类型
您的foreach语句需要更改为foreach($result as$key=>$value){}在代码中使用foreach($result as$key1=>$key){}在数组中使用$supplier\u dashboard[$key1]['picku location\u name']=//您的代码已经这样做了,其严重性:警告消息:非法偏移量类型
您的foreach语句需要更改为foreach($result as$key=>$value){}在代码中使用foreach($result as$key1=>$key){}并在数组中使用$supplier_dashboard[$key1]['picku location\u name']=//您的代码