循环遍历数组中的3个元素

时间:2015-09-16 18:16:58

标签: php arrays

我可以循环遍历数组中的2个元素,但是这里我很难循环遍历3个元素。

这是我的例子:

   $y = array('cod=>102,subcod=>10201,name=>"blabla"',
              'cod=>103,subcod=>10202,name=>"blibli"',
              'cod=>103,subcod=>10202,name=>"bblubl"')

我的愿望结果是如何获得每一行的codsubcod以及name的价值。

我试过了:

     foreach ($y as $v) {
                echo $v['cod'] ;
                echo $v['subcod'];
                echo $v['name'] ;
             }

但没有用,我得到了这个错误:Warning: Illegal string offset 'cod'并且每个偏移都有相同的错误。

任何帮助都会有很大帮助。

1 个答案:

答案 0 :(得分:2)

如果你不能改变你的阵列

然后你需要格式化然后使用循环并获取值。

function format_my_array($arg) {
    $new = array();

    foreach( $arg as $n => $v ) {

        // splitting string like 
        // 'cod=>102,subcod=>10201,name=>"blabla"'
        // by comma 
        $parts = explode(',', $v);

        $new[$n] = array();
        foreach( $parts as $p ) {

            // splittin again by '=>' to get key/value pair
            $p = explode('=>', trim($p));
            $new[$n][$p[0]] = $p[1];
        }
    }

    return $new;
}

$new_y = format_my_array($y);

foreach( $new_y as $v ) {
    echo $v['cod'];
    echo $v['subcod'];
    echo $v['name'];
}