[英]search a value in multi dimensional array that has multiple same key names
想象你有這個數組
Array(
[0] => Array
(
['id'] => 12,
['filter'] => Array
(
['resource'] => Array
(
['id'] => 44444
)
),
['filtervalue'] => Array
(
['resource'] => Array
(
['id'] => 12345
)
)
),
[1] => Array
(
['id'] => 24,
['filter'] => Array
(
['resource'] => Array
(
['id'] => 44444
)
),
['filtervalue'] => Array
(
['resource'] => Array
(
['id'] => 12
)
)
),
[2] => Array
(
['id'] => 25,
['filter'] => Array
(
['resource'] => Array
(
['id'] => 55555
)
),
['filtervalue'] => Array
(
['resource'] => Array
(
['id'] => 123
)
)
),
[3] => Array
(
['id'] => 26,
['filter'] => Array
(
['resource'] => Array
(
['id'] => 55555
)
),
['filtervalue'] => Array
(
['resource'] => Array
(
['id'] => 12
)
)
)
);
我只想知道這兩個值是否存在:
如果filter-> resource-> id == 55555並且if filtervalue-> resource-> id == 12,則在此數組中它們存在於[3]中,因此為true
如果我要搜索是否filter-> resource-> id == 44444並且if filtervalue-> resource-> id == 123
那么它會給出錯誤,盡管[0]中存在4444,[2]中存在123和123
我可能想得太多了
您可以使用foreach循環實現此功能,並檢查所需條件並獲取其索引:
$index = '';
foreach ($records as $key => $record) {
if (($record['filter']['resource']['id'] == 55555) && ($record['filtervalue']['resource']['id'] == 12)) {
$index = $key;
break;
}
}
$found = false;
foreach ($yourArray as $item) {
if ($item['filter']['resource']['id'] == $someVal && $item['filtervalue']['resource']['id'] == $anotherVal) {
$found = true;
break;
}
}
var_dump($found);
$filters = []; // Your array
$r = 44444;
$v = 123;
foreach( $filters as $f ){
if( $r === (int) $f ['filter']['resource']['id'] ){
$r = true;
}
if( $v === (int) $f ['filtervalue']['resource']['id'] ){
$v = true;
}
if( TRUE === $r && TRUE === $v ){
echo "FOUND!!!\n";
break;
}
}
i am probobly overthinking the problem
-絕對可以!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.