我正在尝试获取分配给数组元素的 id 值。我遇到的问题是它会通过 foreach 每 70 个循环分配一个 id。我不太确定我在这个问题上做错了什么。
$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++;
}
}
如您所见,我正在使用以下代码检查 $key 是否为第 8 行的 id:
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