2016-11-11 42 views
1

我试图循环下面的数组。foreach循环后打印阵列不工作

Array 
(
    [mech_info] => Array 
     (
      [make] => Amaka 
      [0] => Array 
       (
        [year] => 2001 
        [model] => Array 
         (
          [0] => Test one 
          [1] => test fix 
          [2] => Hamour 
          [3] => Imagica 
         )  
       ) 

      [1] => Array 
       (
        [year] => 2002 
        [model] => Array 
         (
          [0] => Test Two 
         )  
       ) 

      [2] => Array 
       (
        [year] => 2014 
        [model] => Array 
         (
          [0] => Test three 
         )  
       ) 

      [3] => Array 
       (
        [year] => 2015 
        [model] => Array 
         (
          [0] => test four 
         )  
       )  
     )  
) 

Array 
(
    [mech_info] => Array 
     (
      [make] => PRI 
      [0] => Array 
       (
        [year] => 2005 
        [model] => Array 
         (
          [0] => PRIMODE 
          [1] => Temp Pri 
          [2] => primode 
          [3] => yyy 
         )  
       )  
     )  
) 

我想用foreach循环来做。我已经通过下面的代码尝试,但它没有显示出除了

`print_r($_POST['mech_show']);`. 

     $all_make_model= $_POST['mech_show']; 
     $all_make_model_data = $all_make_model['mech_info']; 

    foreach ($all_make_model_data as $key => $mec_value) { 
     echo "string"; 
     echo $meta_value['make']; 
    } 


    echo "<pre>"; 
    print_r($_POST['mech_show']); 


    exit(); 

也无法foreach和数据去下在循环不显示任何信息。

给我的错误

注意:未定义指数:mech_info

Warning: Invalid argument supplied for foreach() in 

我也TRIE这种方式,但

$all_make_model= $_POST['mech_show']; 
$all_make_model_data = $_POST['mech_info']; 

    foreach ($all_make_model as $key => $mec_value) { 
     echo "<pre>"; 
     print_r($mec_value['make']); 
     echo "</pre>"; 
    } 

    echo "<pre>"; 
    print_r($all_make_model['mech_info']); 

但它showing Warning: Illegal string offset 'mech_info' in ..

我不知道我的代码是否错误,或者我错过了任何人可以帮助我。

谢谢

+2

错字'回声$ meta_value [ '让'];'应该是'回声$ mec_value [ '让']' – jitendrapurohit

+0

'的foreach($ all_make_model_data as $ key => $ mec_value){ echo“string”; echo $ mec_value ['make']; }' –

+0

你可以var_dump你的mech_show?我试图创建你的对象,并且我得到了一个空数组 – GiuServ

回答

0

一些改变你的foreach循环。它$meta_value['make']应该$mec_value['make']

所以,

$all_make_model= $_POST['mech_show']; 
//$all_make_model_data = $all_make_model['mech_info']; 

foreach ($all_make_model as $key => $mec_value) { 
    echo "<pre>"; 
    print_r($mec_value['make']); 
    echo "</pre>"; 
} 
+0

我试过你的代码,但没有显示任何给我空白。 – maddy

+0

给我错误等 说明:未定义指数:mech_info在/opt/lampp/htdocs/cync/wp-content/themes/twentysixteen/functions.php线1258 警告:的foreach()中提供的参数无效/ opt/lampp/htdocs/cync/wp-content/themes/twentysixteen/functions.php on line 1260 – maddy

+0

仍然同样的错误显示.. – maddy

0

尝试

$all_array=array("mech_info"=>array("make"=>"Amaka",array("year"=>2001,"model"=>array("one","two","three")),array("year"=>2002,"model"=>array("one","two","three")),array("year"=>2003,"model"=>array("one","two","three")),array("year"=>2004,"model"=>array("one","two","three"))),array("mech_info"=>array("make"=>"PRI",array("year"=>2001,"model"=>array("one","two","three"))))); 

$all_make_model= $all_array; 
//$all_make_model_data = $all_make_model['mech_info']; 
//print_r($all_make_model['mech_info']); 
foreach ($all_make_model['mech_info'] as $key => $mec_value) { 
    if(is_numeric($key)) continue; 
    echo $mec_value; // output Amaka 
} 

exit(); 
+0

不能正常工作给我︰为foreach提供的无效参数() – maddy

+0

经过测试的代码工作正常 –

0

本守则只是工作。 要在多个mech_info上进行迭代,我在数组中添加了一个假,因为否则您将创建具有相同索引的多个对象。

$p = Array('mech_show' => Array(
    0 => Array(
     'mech_info' => Array(
       'make' => 'Amaka', 
       '0' => Array(
         'year' => 2001, 
         'model' => Array(
           0 => 'Test one', 
           1 => 'test fix', 
           2 => 'Hamour', 
           3 => 'Imagica' 
          )  
        ), 

       '1' => Array(
         'year' => 2002, 
         'model' => Array(
           0 => 'Test Two' 
          )  
        ), 

       '2' => Array(
         'year' => 2014, 
         'model' => Array(
           0 => 'Test three' 
          )  
        ), 

       '3' => Array(
         'year' => 2015, 
         'model' => Array 
          (
           0 => 'test four' 
          )  
        )  
      )  
     ), 
    1=>Array(
     'mech_info' => Array(
       'make' => 'PRI', 
       '0' => Array(
         'year' => 2005, 
         'model' => Array(
           0 => 'PRIMODE', 
           1 => 'Temp Pri', 
           2 => 'primode', 
           3 => 'yyy' 
          )  
        )  
      )  
     ) 
    ) 
); 

$all_make_model= $p['mech_show']; 

foreach($all_make_model as $all_make_model_data){ 
    foreach($all_make_model_data as $mech_info) 
    var_dump($mech_info['make']); 
} 

,你必须更换$ P与$ _ POST

+0

不工作给我︰无效为foreach()提供的参数 – maddy

+0

第一个或第二个foreach?我做了一个简单的PHP页面,它工作。如果它不,你的对象是不同的,这就是为什么我要求一个var_dump'mech_show' – GiuServ