[英]How to check if a multidimensional array key is in an array more than once?
我有這個多數組:
Array (
[0] => Array (
[title] => f2
)
[1] => Array (
[title] => f2
)
[2] => Array (
[title] => f3
)
)
我只想檢查一個鍵(由$item
表示)是否在數組中不止一次,所以在我的情況下,'f2' 不止一次。
我嘗試使用in_array
,但它不適用於多 arrays。
然后我嘗試了這個:
$item='f2';
$array_count = array_count_values($titles);
if (array_key_exists($item, $array_count) && ($array_count[$item] > 1))
{
echo 'more than once';
}
但這仍然行不通。
可以使用array_column
和array_count_values
的組合:
$arr = [
[
'title' => 'f2'
],
[
'title' => 'f2'
],
[
'title' => 'f3'
]
];
$counts = array_count_values(array_column($arr, 'title'));
print_r($counts);
Output
Array
(
[f2] => 2
[f3] => 1
)
獲得總數后,您可以簡單地執行以下操作:
if (($counts[$item] ?? 0) > 1) {
// do action
}
閱讀材料
循環計數,如果您已經看過您的配對,請保釋:
<?php
$items =
[
['letter'=>'a'],
['letter'=>'a'],
['letter'=>'c']
];
$n = 0; $result = false;
foreach($items as $item) {
if(($item['letter'] ?? null) == 'a' && $n++) {
$result = true;
break;
}
}
var_dump($result);
Output:
bool(true)
您可以過濾您的項目並查看計數是否大於 1:
<?php
$items =
[
['letter'=>'a'],
['letter'=>'a'],
['letter'=>'c']
];
var_dump(count(array_filter($items, function($item) {
return ($item['letter'] ?? null) == 'a';
})) > 1);
Output:
bool(true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.