【问题标题】:How to match associative array keys against array values without a loop如何在没有循环的情况下将关联数组键与数组值匹配
【发布时间】:2015-12-23 18:36:57
【问题描述】:


这个问题几乎说明了一切。

我试图在不使用循环的情况下将一个数组的键与 php 中另一个数组的值进行匹配。谢谢:)

我可以通过将所有键命名为我想要匹配的值并将值设置为 null 并检查键交集来创建一个数组,但这似乎效率低下。如果有人知道的话,可能有一种更简单的方法:)

例如

$array1 = array('photo' => 'foo.jpeg', 'audio' => 'bar.mp3');
$array2 = array('photo', 'audio', 'video');

我试图让 $array2 的任何值与 $array1 的任何键匹配

【问题讨论】:

  • 我已经更新了问题,请检查
  • $array1中的值与$array2的索引匹配时,你想要什么?
  • 我要抓取与value匹配的key。
  • 多维数组在哪里?如果没有循环,您将需要分别测试每个密钥的存在,例如。 array_key_exists('photo', $array1); 等等。

标签: php arrays multidimensional-array foreach matching


【解决方案1】:

试试这些方法。

<?php
$a = array_keys( array('photo' => 'foo.jpeg', 'audio' => 'bar.mp3') );
$b = array('photo', 'audio', 'video');

//This will return empty array
print_r(array_values( array_diff($a, $b) ));

//This will return array with "video".
print_r(array_values( array_diff($b, $a) ));

//This will check Double sided array so the response 
// will be element missing from both arrays.
print_r(array_values(array_merge(array_diff($b, $a), array_diff($a, $b))));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多