0

jqueryの.postを使用して、phpコードに次のvar_dump結果を取得するオブジェクトを送信します。

array(6) {
  [0]=>
  array(1) {
    ["00176 "]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    ["00171 "]=>
    string(1) "5"
  }
  [2]=>
  array(1) {
    ["00173 "]=>
    string(1) "1"
  }
  [3]=>
  array(1) {
    ["00177 "]=>
    string(1) "4"
  }
  [4]=>
  array(1) {
    ["00183 "]=>
    string(1) "2"
  }
  [5]=>
  array(1) {
    ["00149 "]=>
    string(1) "1"
  }
}

この配列から値を取得するにはどうすればよいですか?私はしたいと思います

foreach{
echo $key . '__ ' . $value //would give for [0]: '00176 __ 2'
}

どうすればそれを達成できますか?

4

3 に答える 3

2

配列のネストされた構造に苦労している場合は、最初にそれをフラット化してから、foreach:を実行するだけです。

// flatten the array:
$array = call_user_func_array('array_merge', $array);

// standard foreach:
foreach ($array as $key => $value) {
   echo $key . '__ ' . $value;
}

別の代替手段は、以下を使用することeachです。

foreach ($array as $entry) {
    list($key, $value) = each($entry);
    echo $key . '__ ' . $value;
}
于 2012-06-20T00:24:50.290 に答える
0

サブ配列のキー値が変更されるため、おそらく外部ループと内部ループが必要になります。私はあなたの投稿データを少しきれいに再構築したいと思います。

foreach($array as $item)
{
  if(is_array($item))
    foreach($item as $key => $value)
    {
      echo $key . '__ ' . $value;
    }
}
于 2012-06-20T00:21:10.417 に答える
0

POSTによって多次元配列を受け取っています。これは次の構造になっています。

$_POST[0][00176] = '2'
$_POST[1][00171] = '5'
$_POST[2][00173] = '1'
$_POST[3][00177] = '4'
$_POST[4][00183] = '2'
$_POST[5][00149] = '1'

だから私はあなたが望むようにそれを読むためのより簡単な方法は次のように別のforeach内でforeachを行うことだと思います:

foreach ($_POST as $key1 => $value1)
{
    foreach ($value1 as $key2 => $value2)
    {
        echo $key2 . '__' . $value2;
    }

}

PHPのドキュメントには、 foreachを使用して多次元配列を読み取る例があります。

于 2012-06-20T00:45:34.127 に答える