эхо-ключ и значение массива без цикла и с циклом


Это массив, который у меня есть

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

Как я могу повторить что-то подобное для отдельного человека, такого как

Home is at index.html

И снова, как я могу сделать это через цикл и повторить все?

Author: esafwan, 2010-08-04

10 answers

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

Для версии "без цикла" я просто спрошу "почему?"

 57
Author: Mchl, 2010-08-04 14:53:50

Без петли, просто для удовольствия...


Вы можете либо преобразовать массив в неассоциативный, выполнив:

$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
Author: Alix Axel, 2010-08-04 17:36:06

Если вы не должны использовать цикл (почему?), вы могли бы использовать array_walk,

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

array_walk($page, "printer");

См. http://www.ideone.com/aV5X6.

 7
Author: kennytm, 2010-08-04 14:59:52

Для первого вопроса

$key = 'Home';
echo $key." is at ".$page[$key];
 5
Author: Your Common Sense, 2010-08-04 15:27:52
function displayArrayValue($array,$key) {
   if (array_key_exists($key,$array)) echo "$key is at ".$array[$key];
}

displayArrayValue($page, "Service"); 
 3
Author: Mark Baker, 2010-08-04 15:22:17

Эхо-ключ и значение массива без цикла и с циклом

$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
)
 3
Author: avi, 2015-06-09 13:32:04

Как отобразить ключ и значение массива без цикла и с циклом

$keys = array_keys($page);
implode(',',$keys);
echo $keys[0].' is at '.$page['Home'];
 1
Author: chisom, 2017-11-21 09:44:12

Рекурсивная функция для изменения;) Я использую его для вывода мультимедийной информации для видео и т. Д. Элементы которой могут использовать вложенный массив/атрибуты.

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
Author: Shivanand Sharma, 2018-01-05 08:14:52

Моя версия без цикла была бы такой:

echo implode(
    "\n", 
    array_map(
         function ($k, $v) { 
             return "$k is at $v"; 
         }, 
         array_keys($page), 
         array_values($page)
    )
);
 0
Author: Karol Samborski, 2018-07-23 06:09:29

Для каждого ($arry как $ключ = > $значение) { ключ echo $;

Для каждого ($значение как $val) { эхо $вал; } }

 -1
Author: mayur, 2018-07-23 06:03:02