【问题标题】:echo key and value of an array without and with loop回显没有和有循环的数组的键和值
【发布时间】:2011-03-25 07:38:30
【问题描述】:

这是我拥有的数组

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

我如何为像这样的个人回应这样的事情

Home is at index.html

我又该如何通过循环来执行此操作并全部回显?

【问题讨论】:

标签: php arrays echo


【解决方案1】:
foreach($page as $key => $value) {
  echo "$key is at $value";
}

对于“无循环”版本,我只会问“为什么?”

【讨论】:

  • 这很好......只是想知道是否可以通过将其称为 0 或 1 等来单独获取一个值......我刚刚开始使用这些东西。非常感谢!!
  • 这实际上是很常见的事情,单独处理数组项。
  • 哦,好的。我将您的问题理解为“如何在不使用循环的情况下回显数组中的所有键值元素”——恕我直言,这将是愚蠢的事情(除非像 KennyTM 那样使用 array_walk)。
  • 如果您的数组只包含一个键和一个值,那么不必使用循环会很方便。如果您不知道密钥:key($page).' is at '.$page[key($page)];
【解决方案2】:

没有循环,只是为了好玩......


您可以通过以下方式将数组转换为非关联数组:

$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

【讨论】:

    【解决方案3】:

    如果你不能使用循环(为什么?),you could use array_walk

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

    http://www.ideone.com/aV5X6

    【讨论】:

      【解决方案4】:

      在没有和有循环的情况下回显数组的键和值

      $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
      )
      

      【讨论】:

      • 自 PHP 7.2.0 起,each() 函数已被弃用。强烈建议不要依赖此功能。来源:php.net
      【解决方案5】:

      第一个问题

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

      【讨论】:

        【解决方案6】:
        function displayArrayValue($array,$key) {
           if (array_key_exists($key,$array)) echo "$key is at ".$array[$key];
        }
        
        displayArrayValue($page, "Service"); 
        

        【讨论】:

          【解决方案7】:

          如何在没有和有循环的情况下回显数组的键和值

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

          【讨论】:

            【解决方案8】:

            我没有循环的版本是这样的:

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

            【讨论】:

              【解决方案9】:
              array_walk($v, function(&$value, $key) {
                 echo $key . '--'. $value;
               });
              

              了解更多关于array_walk

              【讨论】:

                【解决方案10】:

                用于更改的递归函数;)我用它来输出视频等元素的媒体信息,这些元素可以使用嵌套数组/属性。

                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;
                }
                

                【讨论】:

                  【解决方案11】:

                  你可以试试下面的代码:

                  foreach ($arry as $key => $value) 
                  {
                        echo $key;
                        foreach ($value as  $val) 
                        {
                           echo $val; 
                        }
                  }
                  

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2014-11-03
                    • 1970-01-01
                    • 2015-08-22
                    • 2022-10-14
                    • 1970-01-01
                    • 2016-06-06
                    • 2015-09-21
                    • 1970-01-01
                    相关资源
                    最近更新 更多