我需要获取key2的数组值,而不是
key2: "value2-bonusValue"
我需要像这样
key2: {
"value2",
"bonusValue"
}
如果我从数组之一中删除,则会得到未定义的偏移量:1我需要能够在没有键的情况下获取数组,并且需要使用多键的键
$my_string = "key0:value0,key1:value1,key2:value2-bonusValue";
$convert_to_array = explode(',', $my_string);
foreach($convert_to_array as $_array){
$temp = explode(":", $_array);
$arrays[$temp[0]] = $temp[1];
}
return $arrays;
答案 0 :(得分:1)
您只缺少一组,即子元素的分割。在这段代码中,它将值除以-
,但是如果只有1个元素,则将其设置回第一个元素,否则将子数组添加到...中。
$convert_to_array = explode(',', $my_string);
foreach($convert_to_array as $_array){
$temp = explode(":", $_array);
$sub = explode("-", $temp[1]);
if ( count($sub) == 1 ) {
$sub = $sub[0];
}
$arrays[$temp[0]] = $sub;
}
print_r( $arrays );
这给...
Array
(
[key0] => value0
[key1] => value1
[key2] => Array
(
[0] => value2
[1] => bonusValue
)
)
对于缺少的:
,您可以检查$temp
中的元素数量...
$convert_to_array = explode(',', $my_string);
foreach($convert_to_array as $_array){
$temp = explode(":", $_array);
if ( count($temp) == 2 ) {
$sub = explode("-", $temp[1]);
if ( count($sub) == 1 ) {
$sub = $sub[0];
}
$arrays[$temp[0]] = $sub;
}
}
虽然不确定您要使用该值做什么。