Php 如何分解ans将数组值更改为键?
我有一个这样的数组Php 如何分解ans将数组值更改为键?,php,arrays,Php,Arrays,我有一个这样的数组 Array ( [0] => Array ( [0] => a~226 [1] => a~228 ) [1] => Array ( [0] => b~123 [1] => b~209 ) [2] => Array (
Array
(
[0] => Array
(
[0] => a~226
[1] => a~228
)
[1] => Array
(
[0] => b~123
[1] => b~209
)
[2] => Array
(
[0] => c~161
[1] => c~140
)
)
我想用~symbol分解这个数组,我希望value是php数组中的一个键。我想要这样的数组。请帮助我编写代码
Array
(
[0] => Array
(
[a] => 226
[a] => 228
)
[1] => Array
(
[b] => 123
[b] => 209
)
[2] => Array
(
[c] => 161
[c] => 140
)
)
提前感谢…试试这个
$arr_new = array();
foreach($arr_main as $key=>$arr)
{
foreach($arr as $k=>$val)
{
$str = explode("~",$val);
$arr_new[$key][$str[0].$k]=$str[1];
}
}
将索引保持为
a0,a1
您不能拥有这样的数组。
钥匙必须是唯一的(如马克·贝克所说)
你可以有这样的东西:
Array
(
[a] => Array
(
[0] => 226
[1] => 228
)
[b] => Array
(
[0] => 123
[1] => 209
)
[c] => Array
(
[0] => 161
[1] => 140
)
)
执行此操作的代码:
$array = array(
array("a~226", "a~228"),
array("b~123", "b~209"),
array("c~161", "c~140")
);
$result = array();
foreach($array as $inner_array) {
foreach($inner_array as $value) {
$spitted = explode("~", $value);
$result[$spitted[0]][] = end($spitted);
}
}
工作示例:您无法创建该数组,因为kes必须是唯一的。。。同一数组中具有相同键的两个键(例如
a
和a
或b
和b
)不可用unique@vascowhite你是对的。但是代码是正确的在第二个数组中只维护一个索引,并且与值重叠。代码在某些情况下可能是正确的,但在这个情况下不正确。@vascowhite我在代码中做了一些更改以维护唯一索引,但仍然不是要求的,我想只有OP才能决定这是否足够:)我建议扩展您的答案,解释OP无法获得示例中要求的数组的原因。他对数组索引的了解不够,这就是他放置重复索引的原因。我只是想帮助他