2016-05-15 9 views
1

以下に配列のコードがあります。私は内側の配列のフィールドカテゴリのリストを作成しようとしています、そして、 'カテゴリーなし'と書くためにfielが空であるとき。私はそれをすることはできません。私はリストを新しい配列に保存するネストされた2つのforeachで試してきましたが、それを正しく取得できません。3D配列からリストを作成する方法内部データPHP

 Array(
'type' => 'success', 
'value => array (
    0 => array (
     'id' => 1, 
     'joke' => 'Chuck Norris uses ribbed condoms inside out, so he gets the pleasure.', 
      'categories' => array()); 
    1 => array (
      'id' => 2, 
      'joke' => 'MacGyver can build an airplane out of gum and paper clips. Chuck Norris can kill him and take it.', 
      'categories' => array(    
      [0] => nerdy       
      )); 
     2 => array (
      'id' => 3, 
      'joke' => 'MacGyver can build an airplane out of gum and paper clips. Chuck Norris can kill him and take it.', 
      'categories' => array(    
      [0] => explicit 
      )); 
    ); 
) 

//これは、私は運なし

$output = array(); 

    foreach($response as $row){ 
     foreach($row as $cat){ 
      $output[] = $cat['categories']; 
     } 
    } 

感謝をしようとしていますものです!

+0

空の場合はどうしますか? '$ output'に"カテゴリなし "を追加するか、このテキストをエコーし​​ますか? – olibiaz

+0

はい、私はただ "カテゴリなし"と他のすべてのカテゴリを一度だけ追加したいと思っています... –

答えて

0

まず、配列に間違った構文があります。カンマではなくセミコロンと角括弧で囲まれた配列キーです。ここに正しい構文があります。

$response = Array(
    'type' => 'success', 
    'value' => array (
     0 => array ('id' => 1, 'joke' => 'Chuck Norris uses ribbed condoms inside out, so he gets the pleasure.', 'categories' => array()), 
     1 => array ('id' => 2, 'joke' => 'MacGyver can build an airplane out of gum and paper clips. Chuck Norris can kill him and take it.', 
      'categories' => array(0 => 'nerdy')), 
     2 => array (
      'id' => 3, 
      'joke' => 'MacGyver can build an airplane out of gum and paper clips. Chuck Norris can kill him and take it.', 
      'categories' => array(
      0 => 'explicit')))); 

出力されました。あなたは'カテゴリなし'フィールドが文字列になる出力をしたいですか?したがって、結果配列のprint_rはこのようになります。

Array 
(
    [0] => without category 
    [1] => Array 
     (
      [0] => nerdy 
     ) 

    [2] => Array 
     (
      [0] => explicit 
     ) 

) 

もしそうなら、ここであなたの配列をアンラップする必要があります。

foreach($response as $row) { 
    if (is_array($row)) { 
     foreach($row as $cat) { 
      if (empty($cat['categories'])) { 
       $output[] = 'without category'; 
      } else { 
       $output[] = $cat['categories']; 
      } 
     } 
    } 
} 
+0

私はそれが私が探しているものに似ていますが、正確にはそうではありません。私はそれらを繰り返すことなく各カテゴリのリストを探していますので、私はそれらをメニューに使うことができます。私は自己の権利を説明していない可能性がありますが、多くのおかげで! –

関連する問題