Php 引用数组中包含的索引的最佳方法
在php中,我愿意检查是否存在与数组中其他值匹配的索引Php 引用数组中包含的索引的最佳方法,php,arrays,Php,Arrays,在php中,我愿意检查是否存在与数组中其他值匹配的索引 $indexes = array("index", "id", "view"); $fields = array( "index" => 5, "id" => 7, "form" => 10, "date" => 10, ); 在本例中,我的理想结果是获得“表单”和“日期”。有什么想法吗?你的问题有点不清楚,但我想这就是你的目的 array_key(array_diff_k
$indexes = array("index", "id", "view");
$fields = array(
"index" => 5,
"id" => 7,
"form" => 10,
"date" => 10,
);
在本例中,我的理想结果是获得“表单”和“日期”。有什么想法吗?你的问题有点不清楚,但我想这就是你的目的
array_key(array_diff_key($fields,array_fill_key($index,null));
#=>数组(0=>格式,1=>日期)
看到它在这里工作了吗
以数字索引数组的形式返回数组A的键。使用数组a作为键填充新数组,并将每个键设置为值
从数组A返回数组B中不存在的键数组
编辑打开我的答案随着我对原始问题的理解越来越复杂。这个页面上有更好的答案,但我仍然认为这是一个有趣的解决方案。您可以使用array\u keys函数来检索数组的键 例如: 输出
Array
(
[0] => 0
[1] => color
)
试试看
$fields_keys = array_keys($fields);
$fields_unique = array_diff($fields_keys, $indexes);
结果将是
$字段
中的所有键的数组,这些键不在$索引中
可能有比这更巧妙的方法,但它会让您开始:
foreach(array_keys($fields) as $field) {
if(!in_array($field, $indexes)) {
$missing[] = $field;
}
}
现在,您将拥有一个包含表单和日期的数组。您可以试试这个
<?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);
只有在$index
也是关联的情况下,这才起作用:-不过方法很酷@太热情了,笨蛋,我忽略了这一点。不过不要担心,array\u fill\u keys()!
<?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);