我正在尝试遍历一个多维数组,如果条件匹配,则该数组的所有元素都应存储到一个以匹配的条件命名的新数组中。
$unique_states = array_unique($allstates);
$total = count($states);
for($i = 0; $i < $total; $i++){
foreach($unique_states as $keys => $values){
if(($states[$i][3] == $values)){
$values[] = $states[$i];
}
}
}
$states
是包含所有内容的巨型数组。当我遍历数组以便如果条件 if(($states[$i][3] == $values))
匹配时,应创建一个名为 $值
。
当我运行代码和 print_r($values)
时,我得到了 Fatal error: [] operator not supported for strings
。当我将名称更改为完全不同的名称时,我只需获取 $states
中的所有数组。
不知道该怎么做了。
编辑:
当我删除 foreach
循环并像这样插入 $values
的实际值时
if(($states[$i][3] == 'state1')){
$states1[] = $states[$i];
}
if(($states[$i][3] == 'state2')){
$states2[] = $states[$i];
}
效果很好。但是在我有多个状态的情况下,上面的代码将不够高效,并且每次添加新状态时都需要我进行更改。 我需要返回一个包含所有元素的数组……即 $states[$i] 与 $states[$i][3] 匹配。
来自 $states 输入的数据示例:
Array
(
[0] => Array
(
[0] => firstname1
[1] => lastname1
[2] => Armstrong Landscaping
[3] => state1
[4] => email1
[5] => address1
)
[1] => Array
(
[0] => firstname2
[1] => lastname2
[2] => Armstrong Landscaping
[3] => state1
[4] => email2
[5] => address2
)
[2] => Array
(
[0] => firstname3
[1] => lastname3
[2] => Armstrong Landscaping
[3] => state1
[4] => email3
[5] => address3
)
[3] => Array
(
[0] => firstname4
[1] => lastname4
[2] => Cannon Heathcare Center
[3] => state2
[4] => email4
[5] => address4
)
[4] => Array
(
[0] => firstname5
[1] => lastname5
[2] => Cannon Heathcare Center
[3] => state2
[4] => email5
[5] => address5
)
输出的例子应该是这样的
Array
(
[state1] => Array
(
[0] => Array
(
[0] => firstname1
[1] => lastname1
[2] => Armstrong Landscaping
[3] => state1
[4] => email1
[5] => address1
)
[1] => Array
(
[0] => firstname2
[1] => lastname2
[2] => Armstrong Landscaping
[3] => state1
[4] => email2
[5] => address2
)
Array
(
[state2] => Array
(
[0] => Array
(
[0] => firstname1
[1] => lastname1
[2] => Armstrong Landscaping
[3] => state2
[4] => email1
[5] => address1
)
[1] => Array
(
[0] => firstname2
[1] => lastname2
[2] => Armstrong Landscaping
[3] => state2
[4] => email2
[5] => address2
)
最佳答案
试试这个:
${$values} = array();
${$values}[] = $states[$i];
用于输出:print_r(${$values});
关于php - 遍历数组并创建一个具有匹配参数名称的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24163199/