我正在嘗試獲取分配給數組元素的id值。我遇到的問題是它將通過foreach每70個循環分配一個ID。我不太確定我在做這件事時做錯了什麼。未在foreach循環中分配數組元素
$search = 'echem';
$data = array();
$tags = null;
$i = 0;
//var_dump($this->videos);
foreach ($this->videos as $key => $value) {
foreach ($value as $key => $value) {
if ($key === 'id') {
$data[$i]['id'] = (int)$value;
}
if ($key == 'tags') {
$tags = explode(',', $value);
}
//echo $key . ' - ';
if (is_array($tags)) {
foreach ($tags as $key => $value) {
if (strtoupper($value) == strtoupper($search)) {
//echo 'Search Found <br/>';
$data[$i]['found'] = 1;
}
//echo $value.', ';
}
//echo '<br/>';
}
if (!isset($data[$i]['found'])) {
$data[$i]['found'] = 0;
}
$data[$i]['subId'] = $i;
$i++;
}
}
你可以看到即時檢查,看看是否$鍵是ID上線8用下面的代碼:
if ($key === 'id') {
$data[$i]['id'] = (int)$value;
}
然後我通過循環的其餘部分出現運行貫穿很好,根據需要分配一切。密鑰ID是每個循環中的第一個密鑰,所以爲什麼不分配它使我陷入困境。任何幫助深表感謝。
輸出的var_dump():
array (size=58086)
0 =>
array (size=3)
'id' => int 1
'found' => int 0
'subId' => int 0
1 =>
array (size=2)
'found' => int 0
'subId' => int 1
2 =>
array (size=2)
'found' => int 0
'subId' => int 2
3 =>
array (size=2)
'found' => int 0
'subId' => int 3
4 =>
array (size=2)
'found' => int 0
'subId' => int 4
5 =>
array (size=2)
'found' => int 1
'subId' => int 5
6 =>
array (size=2)
'found' => int 0
'subId' => int 6
7 =>
array (size=2)
'found' => int 0
'subId' => int 7
是什麼'的var_dump($數據)'後'foreach'生產? – Matt
在這種情況下它不會造成問題,但是您不應該在嵌套的foreach循環中覆蓋'$ value'。 – Matt
你所有的三個foreach循環都使用'$ key => $ value' - 這有點令人困惑。你應該給他們不同的名字,以使維護你的代碼更容易。 – andrewsi