0

このような私のアレイのスクリーンショット。

Array(
      [a] => val1 
      [b] => 
           Array(
                 [c]=>68 
          )
)

変数を次のように取得するにはどうすればよいですか。

a = val1
c = 68

ループを使用してphpで?

4

7 に答える 7

1

ご覧ください: http://us.php.net/manual/en/function.http-build-query.php

配列(連想)を取り、それをクエリ文字列に変換します。

于 2012-12-04T13:56:54.027 に答える
1
$array = array('a' => 'val1', 'b' => array('c' => 68));
echo $array['a']; //val1
echo $array['b']['c']; //68

多次元配列のすべてのを出力するには:

function outputValue($array){
  foreach($array as $key => $value){
    if(is_array($value)){
      outputValue($value);
      continue;
    }
    echo "$key=$value" . PHP_EOL;
  }
}

を使用して同じことを達成できますarray_walk_recursive()

array_walk_recursive($array, function($value, $key){echo "$key=$value" . PHP_EOL;});
于 2012-12-04T13:57:07.443 に答える
0

最大1つの配列の深さがわかっている場合は、使用できます

foreach ($myArray as $key=>$val) {
  if (is_array($val) {
    foreach ($val as $key2=>$val2) {
      print $key2.'='.$val2;
    }
  } else {
    print $key.'='.$val;
  }
}

それ以上になる可能性がある場合は、関数を使用します

function printArray($ar) {
  foreach ($myArray as $key=>$val) {
    if (is_array($val) {
      printArray($val)
    } else {
      print $key.'='.$val;
    }
  }
}

printArray($myArray);
于 2012-12-04T14:10:14.353 に答える
0

変数を抽出しようとしている場合は、次を試してください。

<?php
$array = array('a' => 'val1', 'b' => array('c' => 68));

$stack = array($array);
while (count($stack) !== 0) {
    foreach ($stack as $k0 => $v0) {
        foreach ($v0 as $k1 => $v1) {
            if (is_array($v1)) {
                $stack[] = $v1;
            } else {
                $$k1 = $v1;
            }
            unset($k1, $v1);
        }
        unset($stack[$k0], $k0, $v0);
    }
}
unset($stack);

これにより、現在の変数スコープ内に$a(val1) と(68) が作成されます。$c

于 2012-12-04T14:10:51.083 に答える
0

PHP 関数extract() http://php.net/manual/en/function.extract.phpを使用します

このような:

<?php

$var_array = array("color" => "blue",
               "size"  => "medium",
               "shape" => "sphere");
extract($var_array);

echo "$color, $size, $shape\n";

?>
于 2012-12-04T14:01:46.930 に答える
0

以下を使用します。

foreach ($x as $k=>$v) 

配列はどこ$xにありますか。これは、の各要素をループして、キーと値$xを割り当てます。$k$v

例として、配列を設定して表示するコード スニペットを次に示します。

$x = array('a'=>'val1', 'b'=>'val2');
foreach ($x as $k=>$v) {
    echo "$k => $v<br />";
}
于 2012-12-04T13:58:15.743 に答える
0

RecursiveIteratorIterator+RecursiveArrayIteratorを使用できますArrayIterator

現在のデータの例

$data = array(
  'a' => 'val1',
  'b' => array('c'=>68)
);

解決

$it = new RecursiveIteratorIterator(new RecursiveArrayIterator(new ArrayIterator($data)));
echo "<pre>";
foreach ($it as $k=> $var)
{
    printf("%s=%s\n",$k,$var);
}

出力

a=val1
c=68

ライブデモを見る PHP 5.1.0 - 5.4.9

于 2012-12-04T14:16:30.800 に答える