我有这个数组:
array [▼
0 => array:5 [▼
"id" => 1
"user_id" => 15
"parent_campaign_id" => 69464
"child_campaign_id" => 69464
"cpm" => "1.00"
]
1 => array:5 [▼
"id" => 2
"user_id" => 15
"parent_campaign_id" => 69464
"child_campaign_id" => 396331
"cpm" => "2.00"
]
2 => array:5 [▼
"id" => 3
"user_id" => 15
"parent_campaign_id" => 69464
"child_campaign_id" => 398032
"cpm" => "3.00"
]
]
如何知道该数组中是否存在396331
号,密钥应为child_campaign_id
。
我尝试了in_array()
,但似乎它无法正常工作,因为此数组的keys
不同。
非常感谢您的帮助。
答案 0 :(得分:7)
简洁版本使用array_filter
。
git commit --amend --author="Author Name <email@address.com>
当然,如果您愿意,可以使用变量作为搜索键:
$filtered = array_filter($original, function($element) {
return $element['child_campaign_id'] === 396331;
});
if (count($filtered)) {
// it exists
} else {
// it doesn't
}
请注意,这样做的缺点是它会搜索整个数组,减少它,然后检查是否还有剩余的数据。如果你有一个非常大的数组,一个更有效的方法是当你到达第一个匹配的数组元素时循环遍历$search = 396331; // or whatever
$filtered = array_filter($original, function($element) use ($search) {
return $element['child_campaign_id'] === $search;
});
。
答案 1 :(得分:3)
试试这个,它将打印数组索引,如果值不存在则会给出错误的结果。
$index_array= array_search(396331, array_column($array, "child_campaign_id"));
var_dump($index_array);
<强> DEMO 强>
答案 2 :(得分:-2)
您好,您可以尝试这样的事情:
<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
$key=array_search("red",$a);
//compare key with String
?>