簡體   English   中英

PHP foreach在multidimentional數組中返回最后一行

[英]PHP foreach returning last row in multidimentional array

我正在嘗試從多維數組中獲取用戶值

$array = array();

$array["id"] = "1";
$array["name"] = "name1";
$array["country"] = "country1";

$array["id"] = "2";
$array["name"] = "name2";
$array["country"] = "country2";

$array["id"] = "3";
$array["name"] = "name3";
$array["country"] = "country3";

$array["id"] = "4";
$array["name"] = "name4";
$array["country"] = "country4";

foreach($array as $e){
    print_r($e);
}

它只返回4name4country4

我需要獲取像這樣的行

foreach($array as $e){
    $id=$e['id'];
    $name=$e['name'];
    $country=$e['country'];
    echo $id.'/'.$name.'/'.$country.'<br>';
}

但這給了我錯誤作為Illegal string offset 'id'從我對數組的理解這應該返回所有值,請看為什么這個簡單的數組不起作用並建議任何方法來做它

目前你正在覆蓋key 需要正確添加key 你必須建立像 -

$array[0]["id"] = "1";
$array[0]["name"] = "name1";
$array[0]["country"] = "country1";

$array[1]["id"] = "2";
$array[1]["name"] = "name2";
$array[1]["country"] = "country2";

要么

$array = array(
   0 => array('id' => 1, 'name' => 'name1', 'country' => 'country1'),
   1 => array('id' => 2, 'name' => 'name2', 'country' => 'country2'),
);

相反,這樣做你不必手動提供數組鍵

$array = array();

$array[] = array("id" => 123,  "name" => "Your name",  "country" =>  "UK");
$array[] = array("id" => 1342,  "name" => "Your name 2 ",  "country" =>  "UK");

然后在foreach做這個

foreach($array as $key => $val){

echo $key. ":     ".$val['id']. " " . $val['name'];
}

你必須像這樣創建多維數組,現在你要多次覆蓋數組。

$arrays = [
  [0]=>
    ["id"] => "1",
    ["name"] => "name1",
    ["country"] => "country1"
  ], 
  [1]=>[
     ...
  ]
];
foreach($arrays as $array){
    $id=$array['id'];
    $name=$array['name'];
    $country=$array['country'];
    echo $id.'/'.$name.'/'.'$country'.'<br>';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM