Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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,我从一个文本文件中得到了一个充满行的数组。我使用preg_match查找此数组中包含特定字符串的行 每次找到匹配项时,我都希望将该行的键值推送到另一个数组中,这样,在匹配项出现的地方,我就得到了一个满是键值的数组。然后我想迭代这个新数组,并为每个匹配执行一个操作 我如何才能将键推送到新阵列?这样做可能会帮助您: $secondArray = array(); foreach( $firstArray as $key=>$each ){ if( your_condition_h

我从一个文本文件中得到了一个充满行的数组。我使用preg_match查找此数组中包含特定字符串的行

每次找到匹配项时,我都希望将该行的键值推送到另一个数组中,这样,在匹配项出现的地方,我就得到了一个满是键值的数组。然后我想迭代这个新数组,并为每个匹配执行一个操作


我如何才能将键推送到新阵列?

这样做可能会帮助您:

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

}
print_r( $secondArray );die;
array_keys()函数就是您要查找的函数

这就回答了“我怎样才能只将键推送到一个新阵列?”

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

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

那么这个代码呢

$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
});
试试这个:

$new_arr = array_keys($array);

旁注:如果可以在一个循环中执行任务,那么为什么要迭代两个循环呢?那么您到底想要什么呢?这些可以完成任务:,