填充动态关联数组php中的键

时间:2015-06-20 10:24:28

标签: php arrays key

我需要从一个填充2个数组,在白名单上过滤。 这是代码:

foreach($ct_list as $key => $value ){
    if ( in_array($key, $ct_load) ){
        $ct_options[$key] = $value;

        if ( !is_null ($ct_visible) && in_array($key, $ct_visible) ){
            $ct_default[] = $value;
        }
    }
}

第二个数组($ ct_default)没问题。 问题是我期待第一个数组($ ct_options)是这样的(过滤'value3'不是在白名单中):

Array ( 
  [key1] => value1 
  [key2] => value2 
  [key4] => value4 ) 

但我得到的是:

Array ( 
  [0] => value1 
  [1] => value2 
  [2] => value4 ) 

有人可以告诉我,我做错了什么吗?

3 个答案:

答案 0 :(得分:1)

答案被发现,感谢n-dru。

我在foreach循环后使用了一个排序($ ct_options)而不是asort($ ct_options)。 $ ct_options数组中的值随后丢失了所有索引。

感谢您的帮助。

答案 1 :(得分:0)

您正在检查$ ct_load,in_array($key, $ct_load)中是否存在$ key,以及您希望过滤的值为3的代码。

<?php

$array = array("key1" => "value1", "key2" => "value2", "key3" => "value3", "key4" => "value4");
$array2 = array("value1", "value2", "value4");

foreach($array as $key => $value ){
    if ( in_array($value, $array2) ){
        $newArray[$key] = $value;
    }
}

echo "<pre>";
print_r($newArray);
echo "</pre>";
?>

输出:

Array
(
    [key1] => value1
    [key2] => value2
    [key4] => value4
)

答案 2 :(得分:0)

对于此问题,存在array_uintersect函数。