我想操纵一个数组,我有点坚持如何继续,希望我可以指向正确的方向
这是我目前拥有的阵列:
array(10) {
["gdlr-room-id"]=> string(4) "3595"
["gdlr-check-in"]=> string(10) "2016-10-31"
["gdlr-night"]=> string(1) "1"
["gdlr-check-out"]=> string(10) "2016-11-01"
["gdlr-room-number"]=> string(1) "1"
["gdlr-adult-number"]=> string(1) "1"
["gdlr-children-number"]=> string(1) "1"
["gdlr-resident"]=> string(8) "resident"
["service"]=> string(19) "5061,5060"
["service-amount"]=> string(7) "1,1" }
这就是我想要实现的目标:
array(10) {
["gdlr-room-id"]=> array(1) { [0]=> string(4) "3595" }
["gdlr-check-in"]=> string(10) "2016-10-31"
["gdlr-night"]=> string(1) "1"
["gdlr-check-out"]=> string(10) "2016-11-01"
["gdlr-room-number"]=> string(1) "1"
["gdlr-adult-number"]=> array(1) { [0]=> string(1) "1" }
["gdlr-children-number"]=> array(1) { [0]=> string(1) "1" }
["gdlr-resident"]=> string(8) "resident"
["service"]=> array(2) { [0]=> string(4) "5061" [1]=> string(4) "5060" }
["service-amount"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "1" }
}
如果我可以解释一下:如果我们以 gdlr-room-id 键为例:我当前的数组表示一个键值对,如["gdlr-room-id"]=> string(4) "3595"
所示{期望的结果是值在另一个数组中,如下所示:["gdlr-room-id"]=> array(1) { [0]=> string(4) "3595" }
。这不是针对所有key =>值对,而是仅选择少数几个,因为一些将保留,例如它们。 ["gdlr-check-in"]=> string(10) "2016-10-31"
可以,因为它是
总之,我如何在数组中取一些值(就像我当前的那样)并将一些值放在另一个数组中,如上所述?虽然我们正在讨论这个问题,但我有何建议如何将此["service"]=> string(19) "5061,5060"
转变为["service"]=> array(2) { [0]=> string(4) "5061" [1]=> string(4) "5060" }
?感谢
答案 0 :(得分:3)
如果您有一个键列表,其值应扩展为数组,例如
P[x]
并且逗号分隔多个值,您可以执行类似
的操作A[0] + A[1] + ... + A[x]
这将检查原始数组的每个键值对,如果键位于$ expand_keys数组中,则将其值分解为数组。
答案 1 :(得分:2)
您可以遍历元素并将值分解为新数组,如下所示:
<?php
$array = array("gdlr-room-id" => "3595",
"service" => "5061,5060",
"service-amount" => "1,1"
);
$copied_array = array();
foreach( $array as $key => $value ){
$copied_array[$key] = explode(',', $value);
}
print_r($copied_array);