web-dev-qa-db-ja.com

ループの有無による配列のキーと値のエコー

これは私が持っている配列です

<?php
$page['Home']='index.html';
$page['Service']='services.html';
?>

このような何かを個々のようなものにエコーするにはどうすればいいですか

Home is at index.html

繰り返しますが、ループを介してこれを行い、すべてをエコーするにはどうすればよいですか?

22
esafwan
foreach($page as $key => $value) {
  echo "$key is at $value";
}

「ループなし」バージョンの場合、「なぜ?」

64
Mchl

ループなしで、キックするだけです...


次のようにして、配列を非連想配列に変換できます。

$page = array_values($page);

そして、ゼロベースのインデックスで各要素にアクセスします:

echo $page[0]; // 'index.html'
echo $page[1]; // 'services.html'

または、もう少し複雑なバージョンを使用できます。

$value = array_slice($page, 0, 1);

echo key($value); // Home
echo current($value); // index.html

$value = array_slice($page, 1, 1);

echo key($value); // Service
echo current($value); // services.html
11
Alix Axel

ループを使用してはいけない場合(理由は?)、 array_walk

function printer($v, $k) {
   echo "$k is at $v\n";
}

array_walk($page, "printer");

http://www.ideone.com/aV5X6 を参照してください。

7
kennytm

最初の質問

$key = 'Home';
echo $key." is at ".$page[$key];
5

ループの有無による配列のエコーキーと値

$array = array(
            'kk6NFKK'=>'name',
            'nnbDDD'=>'claGg',
            'nnbDDD'=>'kaoOPOP',
            'nnbDDD'=>'JWIDE4',
            'nnbDDD'=>'lopO'
         );


print_r(each($array));  

出力

Array
(
    [1] => name
    [value] => name
    [0] => kk6NFKK
    [key] => kk6NFKK
)
5
avi
function displayArrayValue($array,$key) {
   if (array_key_exists($key,$array)) echo "$key is at ".$array[$key];
}

displayArrayValue($page, "Service"); 
3
Mark Baker

ループのない私のバージョンは次のようになります。

echo implode(
    "\n", 
    array_map(
         function ($k, $v) { 
             return "$k is at $v"; 
         }, 
         array_keys($page), 
         array_values($page)
    )
);
1
Karol Samborski

ループの有無にかかわらず配列のキーと値をエコーする方法

$keys = array_keys($page);
implode(',',$keys);
echo $keys[0].' is at '.$page['Home'];
1
cloud

変更のための再帰関数;)私はそれを使用して、ネストされた配列/属性を使用できるビデオなどの要素のメディア情報を出力します。

function custom_print_array($arr = array()) {
    $output = '';
    foreach($arr as $key => $val) {
        if(is_array($val)){
            $output .= '<li><strong>' . ucwords(str_replace('_',' ', $key)) . ':</strong><ul class="children">' . custom_print_array($val) . '</ul>' . '</li>';
        }
        else {
            $output .=  '<li><strong>' . ucwords(str_replace('_',' ', $key)) . ':</strong> ' . $val . '</li>';
        }
    }
    return $output;

}

0