使每个嵌套使用爆炸

时间:2019-06-08 17:19:16

标签: php laravel foreach explode

我需要获取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;

1 个答案:

答案 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;
    }
}

虽然不确定您要使用该值做什么。