在php中,我愿意检查是否存在与数组中其他值匹配的索引。
$indexes = array("index", "id", "view");
$fields = array(
"index" => 5,
"id" => 7,
"form" => 10,
"date" => 10,
);
在这种情况下,我的理想结果是获得“形式”和“约会”。有什么想法吗?
答案 0 :(得分:5)
尝试
$fields_keys = array_keys($fields);
$fields_unique = array_diff($fields_keys, $indexes);
结果将是$fields
中不在$indexes
中的所有键的数组。
答案 1 :(得分:2)
你可以试试这个。
<?php
$indexes = array("index", "id", "view");
$fields = array(
"index" => 5,
"id" => 7,
"form" => 10,
"date" => 10,
);
$b = array_diff(array_keys($fields), $indexes);
print_r($b);
答案 2 :(得分:1)
您的问题有点不清楚,但我认为这就是您的目标
array_keys(array_diff_key($fields, array_fill_keys($indexes, null)));
#=> Array( 0=>"form", 1=>"date" )
上查看此处的工作
array_keys(A)将 array A 的键作为数字索引数组返回。
array_fill_keys(A, value)使用数组A 作为键填充新数组,并将每个键设置为 value
array_diff_key(A,B)返回数组B 中不存在的 array A 中的键数组。
编辑开启我的答案变得更加复杂,因为我更了解原始问题。这个页面有更好的答案,但我仍然认为这是一个有趣的解决方案。
答案 3 :(得分:1)
您可以使用array_keys函数来检索数组的键
例如:
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
输出
Array
(
[0] => 0
[1] => color
)
答案 4 :(得分:0)
可能有一种比这更顺畅的方式,但它会让你开始:
foreach(array_keys($fields) as $field) {
if(!in_array($field, $indexes)) {
$missing[] = $field;
}
}
现在您将拥有一个包含表单和日期的数组。