我正在循環使用CodeIgniter 2.x(PHP)中MySQL返回的數據庫對象。數組$gifts
在開始之前已在循環外聲明。PHP數組未在foreach循環中設置自定義鍵
有一個內部循環和一個外部循環。外循環生成下面的第二個數組示例。內部循環生成問題數組。
在LINE 2中,$i['gifts'][$row->id_gift]
正確設置了所需標識爲$row->id_gift
的按鍵。在LINE 1中,它不是。陣列關鍵字按從0-n開始的數字順序進行分配,就好像它正在設置爲$gifts[][$sd] = $row->$sd
一樣。
對此有何想法?
$query = $this->db->get();
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
foreach ($select_details as $sd)
{
$gifts[$row->id_gift][$sd] = $row->$sd; // LINE 1
$i['gifts'][$row->id_gift] = array('merchant_rank'=>$i['merchant_rank'],'rank'=>$row->rank); // LINE 2
}
}
}
陣列(第1行)輸出樣本:
Array (
[0] =>
Array (
[id_gift] => 392
[id_group] => 244
[rank] => 1
)
[1] => Array (
[id_gift] => 287
[id_group] => 239
[rank] => 1
)
[2] => Array (
[id_gift] => 264
[id_group] => 4
[rank] => 1)
)
陣列(LINE 2)輸出樣本(注意gifts
陣列中的正確的鍵):
Array (
[0] => Array
(
[id] => 49
[id_group] => 49
[id_merchants] => 116
[gifts] => Array
(
[392] => Array
(
[merchant_rank] => 1
[rank] => 1
)
[287] => Array
(
[merchant_rank] => 1
[rank] => 2
)
[264] => Array
(
[merchant_rank] => 1
[rank] => 3
)
)
)
)
已解決。如果您好奇,請參閱下面的答案。感謝您的幫助@Spartan和@DontPanic。
而不是'$禮物[$按行> id_gift]'它的作用就像你使用'$禮物[]'會? –
Post array aswell –
@ Don'tPanic,是的,正確的。 – JessycaFrederick