我想操纵一个数组,我对如何进行操作有些困惑,希望我能指出正确的方向
这是我目前拥有的数组:
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" }
。这并非适用于所有键=>值对,而是仅保留少数几个,因为它们可以保持原样,例如["gdlr-check-in"]=> string(10) "2016-10-31"
可以
总而言之,我该如何在一个数组内获取某些值(就像我当前的值一样),并使某些值位于另一个数组内,如我上面所解释的那样?虽然我们是在它,任何建议,我怎么可以把这个["service"]=> string(19) "5061,5060"
变成这样:["service"]=> array(2) { [0]=> string(4) "5061" [1]=> string(4) "5060" }
?谢谢
如果您有一个键列表,该键的值应扩展为数组,例如
$expand_keys = array('gdlr-room-id', 'service');
并且多个值之间用逗号分隔,您可以执行以下操作
foreach ($array as $key => $value) {
if (in_array($key, $expand_keys)) {
$array[$key] = explode(',', $value);
}
}
如果键在$ expand_keys数组中,这将检查原始数组的每个键值对,并将其值爆炸到数组中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句