我有这个数组:
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"
]
]
Run Code Online (Sandbox Code Playgroud)
如何知道396331该数组中是否存在数字,密钥应该是child_campaign_id.
我试过,in_array()但它似乎无法正常工作,因为keys这个数组是不同的.
对你的帮助表示感谢.
简单干净的版本使用array_filter.
$filtered = array_filter($original, function($element) {
return $element['child_campaign_id'] === 396331;
});
if (count($filtered)) {
// it exists
} else {
// it doesn't
}
Run Code Online (Sandbox Code Playgroud)
当然,如果您愿意,可以使用变量作为搜索关键字:
$search = 396331; // or whatever
$filtered = array_filter($original, function($element) use ($search) {
return $element['child_campaign_id'] === $search;
});
Run Code Online (Sandbox Code Playgroud)
请注意,这样做的缺点是它搜索整个数组,减少它然后检查是否还有什么.如果你有一个非常大的数组,一个更有效的方法是循环,break;当你到达第一个匹配的数组元素.