配列要素に割り当てられた id の値を取得しようとしています。私が抱えている問題は、foreach を介して 70 ループごとに 1 つの 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++;
}
}
ご覧のとおり、次のコードを使用して、8行目で $key が 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