2016-04-19 24 views
0

私は$resultという変数を持っています。 masculine => 1feminine => 2:私はこのような構造の配列を取得しようとしています enter image description herePHPでforeachの2回連続した繰り返しを連結しますか?

:それは、以下の構造を有しています。

私はここで立ち往生しています:

foreach ($result as $row) 
{ 
    foreach ($row as $column => $value) 
    { 
     echo $column . ' with order ' . $value . '<br/>'; 
    } 
} 

私の試みの出力は次のとおりです。

enter image description here

私はnext()機能を使用してみましたし、$row variabileにそれを適用されますが、各反復のために私は1(2) => falseを得た。

本当にありがとうございます。

答えて

2

に慣れるお勧めします。 array_column

- (PHP 5> = 5.5.0、PHP 7)

入力アレイ内の単一の列の値を返し

構文 -

アレイarray_column( array $ input、mixed $ column_key [、mixed $ index_key = null])

スクリプトはこのように - これはあなたを助けるPHP < 5.5

<?php 

if (!function_exists('array_column')) { 
    function array_column($input, $column_key, $index_key = null) { 
     $arr = array_map(function($d) use ($column_key, $index_key) { 
      if (!isset($d[$column_key])) { 
       return null; 
      } 
      if ($index_key !== null) { 
       return array($d[$index_key] => $d[$column_key]); 
      } 
      return $d[$column_key]; 
     }, $input); 

     if ($index_key !== null) { 
      $tmp = array(); 
      foreach ($arr as $ar) { 
       $tmp[key($ar)] = current($ar); 
      } 
      $arr = $tmp; 
     } 
     return $arr; 
    } 
} 
?> 

希望の場合はhttp://php.net/manual/en/function.array-column.php

!! -

<?php 

$result = array(
    array(
     'gender_value' => 'masculine', 
     'gender_preffered_order' => 1 
    ), 
    array(
     'gender_value' => 'feminine', 
     'gender_preffered_order' => 2 
    ), 
); 

$filtered = array_column($result, 'gender_preffered_order', 'gender_value'); 
print_r($filtered); 

以上の基準については、リンクを参照してください

+0

+ 1つはPHPが文字通りすべての機能を持っているので、lol – MonkeyZeus

+0

は魅力的です。私は実際にはこれのための組み込み関数が信じられない... –

3

これはうまくいくかもしれない:

$new_array = []; // Not sure if you needed this piece but I've included it :) 

foreach ($result as $row) 
{ 
    echo $row['gender_value'].' => '.$row['gender_preferred_order'].'<br>'; 

    $new_array[$row['gender_value']] = $row['gender_preferred_order']; 
} 

print_r($new_array); 

は、私は非常にあなたがこの仕事をする array_column PHP組み込み機能を使用することができますprint_r()

+0

おかげで、それが完璧に動作します! –

1

私は私はあなたの質問を理解願っていますが、私はこれを作成したかった結果に基づいて:

$result = array(
    array(
     'gender_value' => 'masculine', 
     'gender_preferred_order' => 1, 
    ), 
    array(
     'gender_value' => 'feminine', 
     'gender_preferred_order' => 2, 
    ) 
); 

$set = array(); 

foreach($result as $gender) { 
    $set[] = array($gender["gender_value"] => $gender["gender_preferred_order"]); 
} 

var_dump($set); // [['masculine' => 1],['feminine' => 2]] 
関連する問題