如何将数组值关联的密钥保存到另一个数组?

时间:2013-09-23 08:34:47

标签: php arrays

我有一个来自文本文件的数组。我正在使用 preg_match 来查找此数组中包含特定字符串的行。

每次我找到一个匹配项时,我想将该行的键值推送到另一个数组,这样我最终会得到一个充满键的数组,其中匹配发生。然后我想迭代这个新数组并为每个匹配执行一个动作。

如何将只是按键推送到新阵列?

3 个答案:

答案 0 :(得分:2)

尝试这样可以帮到你:

$secondArray    = array();
foreach( $firstArray as $key=>$each ){
    if( your_condition_here ){
        $secondArray[]  = $key;    
    }

}
print_r( $secondArray );die;

答案 1 :(得分:1)

您正在寻找array_keys()函数。

http://php.net/manual/en/function.array-keys.php

这回答'如何才能将按键推送到新阵列?'

但我认为Nil'z已朝着正确的方向前进,将preg_match()放入循环中。

您可能还想查看函数array_walk()来处理数组中的每个元素

http://php.net/manual/en/function.array-walk.php

那么这段代码呢?

$matching_keys = array();
array_walk($filelines, function($line, $key) {
    if(preg_match(...))
        $matching_keys[] = $key
});
array_walk($matching_keys, function($matching_key) {
    //do your code
});

答案 2 :(得分:0)

试试这个:

$new_arr = array_keys($array);