Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 引用数组中包含的索引的最佳方法_Php_Arrays - Fatal编程技术网

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

在php中,我愿意检查是否存在与数组中其他值匹配的索引

$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);