doushi1900 2016-06-28 09:24
浏览 21

PHP中是否有内置函数允许我选择不是我指定的数组键

Consider an array

$my_array("key1"=>"value1", "key2"=>"value2", "key3"=>"value3")

Does PHP have a function in which I can pass in key1 and it returns key2 and key3. Assuming key1 is always the same but key2 and key3 can change from time to time.

$my_array("key1"=>"value1", "key2"=>"value2", "key3"=>"value3");
$result = the_function_i_want("key1");
print_r($result);

Expected Output

 Array
    (
        [key2] => value2
        [key3] => value3
    )
  • 写回答

1条回答 默认 最新

  • doupeizheng3918 2016-06-28 09:27
    关注

    If you wish to compare the keys you could use the following;

    $array1 = array("a" => "green", "red", "blue", "red");
    $array2 = array("a" => "green");
    
    function key_diff($array1, $array2){
    
        foreach ($array2 as $sKey => $value) {
            if(isset( $array1[$sKey] ) ) unset($array1[$sKey]);
        }
        return $array1;
    }
    
    var_dump(key_diff($array1, $array2));
    exit;
    

    If you wish to compare the values you can use array_diff() as Taken from PHP Manual

    <?php
    $array1 = array("a" => "green", "red", "blue", "red");
    $array2 = array("b" => "green", "yellow", "red");
    $result = array_diff($array1, $array2);
    
    print_r($result);
    ?>
    

    Multiple occurrences in $array1 are all treated the same way. This will output :

    Array
    (
        [1] => blue
    )
    
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?