如何将PHP数组转换为关联数组
我想根据数组值转换此数组 在下划线值转换为键之前,“\”值转换为值之后 原始数组如何将PHP数组转换为关联数组,php,Php,我想根据数组值转换此数组 在下划线值转换为键之前,“\”值转换为值之后 原始数组 Array ( [0] => 1_1 [1] => 1_2 [2] => 1_3 [3] => 1_4 [4] => 1_5 [5] => 1_6 [6] => 3_1 [7] => 3_2 [8] => 3_4 [9] => 3_5 [10] => 4_1 [11] =>
Array (
[0] => 1_1
[1] => 1_2
[2] => 1_3
[3] => 1_4
[4] => 1_5
[5] => 1_6
[6] => 3_1
[7] => 3_2
[8] => 3_4
[9] => 3_5
[10] => 4_1
[11] => 4_2
[12] => 4_3
)
我想将其转换为:
Array(
[1]=> array(
[0]=>1,
[1]=>2,
[2]=>3,
[3]=>4,
[4]=>5,
[5]=>6
),
[3]=> array(
[0]=>1,
[1]=>2,
[2]=>4,
[3]=>5,
[4]=>5
),
[4]=> array(
[0]=>1,
[1]=>2,
[2]=>3
)
);
这应该起作用:
$resp = [];
foreach ($arr as $a) {
$values = explode('_', $a);
$resp[$values[0]][] = $values[1];
}
反过来说:
$resp = [];
foreach ($resp as $key => $arr) {
foreach ($arr as $a) {
$resp[] = $key . '_' . $a;
}
}
这应该可以做到:
$array = Array (
0 => "1_1",
1 => "1_2",
2 => "1_3",
3 => "1_4",
4 => "1_5",
5 => "1_6",
6 => "3_1",
7 => "3_2",
8 => "3_4",
9 => "3_5",
10 => "4_1",
11 => "4_2",
12 => "4_3"
);
// Create a new empty array
$result = array();
// Loop throught your first array
foreach ($array as $data) {
// Foreach data, you explode by '_'so you will get an array
// Eg. $new_data = array(0 => '1', 1 => '1') for $data = "1_1"
$new_data = explode('_', $data);
// Now you just have to add the data as you want
$result[$new_data[0]][] = $new_data[1];
}
var_dump($result);
输出为:
array (size=3)
1 =>
array (size=6)
0 => string '1' (length=1)
1 => string '2' (length=1)
2 => string '3' (length=1)
3 => string '4' (length=1)
4 => string '5' (length=1)
5 => string '6' (length=1)
3 =>
array (size=4)
0 => string '1' (length=1)
1 => string '2' (length=1)
2 => string '4' (length=1)
3 => string '5' (length=1)
4 =>
array (size=3)
0 => string '1' (length=1)
1 => string '2' (length=1)
2 => string '3' (length=1)
你的代码在哪里?发布它…嗨!Stackoverflow是一个特定的问题解决社区,而不是免费的编码服务。请告诉我们你做了什么,遇到了什么问题以及你的期望值。此外,这个问题已经回答了至少50次,所以更多的研究可能对你也有好处。结合
foreach
和分解
,然后使用分解的项作为密钥对并将新分配到新容器中就足够了。我昨天看到了这个问题。我当时可能也说过同样的话。最好看看在不可用状态下创建此数组的代码并解决问题,谢谢它正在工作:)。还有一个问题是什么相反的过程是重新转换原始数组吗?Foreach+字符串连接?循环遍历数组Foreach($key=>$data)
然后循环遍历每个$dataForeach($index=>$value)
,您将得到每个带有$old\u value=$key的“old”值。“\uu”。$value;