【问题标题】:How to remove first element of an array using loop如何使用循环删除数组的第一个元素
【发布时间】:2018-01-21 06:38:36
【问题描述】:

我对 PHP 的经验很少,但我正在参加一个有 PHP 复习练习的课程。其中之一是创建一个函数,该函数使用循环返回数组的所有值,unordered 列表中的第一个值除外。我假设有一种方法可以使用foreach 循环来做到这一点,但无法弄清楚如何。这就是我所拥有的,但我觉得我很遥远:

<?php    
$array = array('myName' => 'Becca', 'favColor' => 'violet', 'favMovie' => 'Empire Strikes Back', 'favBook' => 'Lullaby', 'favWeb' => 'twitter.com');

$myName = $array['myName'];
$favColor = $array['favColor'];
$favMovie = $array['favMovie'];
$favBook = $array['favBook'];
$favWeb = $array['favWeb'];

echo '<h1>' . $myName . '</h1>';

function my_function() {
foreach($array == $myName){
   echo '<ul>'
   . '<li>' . $favColor . '</li>'
   . '<li>' . $favMovie . '</li>'
   . '<li>' . $favBook . '</li>'
   . '<li>' . $favWeb . '</li>'

   . '</ul>';
 }
}

my_function();
 ?>

【问题讨论】:

  • 你能发布你的错误/输出吗?
  • syntax error, unexpected ')'

标签: php arrays loops foreach


【解决方案1】:

foreach的正确语法是

foreach (array_expression as $key => $value)

而不是

foreach($array == $myName){

使用循环返回数组的所有值的函数,除了 第一个值

我不确定,除了第一个值之外,你的意思是什么。如果您尝试从数组中删除第一个元素。那么你可以使用 array_shift

如果你应该使用循环,那么

$count = 0;
foreach ($array as $key => $value)
{
   if ($count!=0)
   {
     // your code
   } 
   $count++;
}

【讨论】:

  • 这不是这个问题的真正答案。是的,这是问题之一,但不是答案。
  • @Pedram 我还没有更新答案。另外,请注意,我根据当前可用的信息进行了回答。
  • 另外提到这一点,不能在没有globalfunction 中使用$array
  • @Pedram 我不反对,如果您更新我的答案,直到它有效。 ;-)
  • 这不能是一个编辑,它只是一个注释,我不想因为这样的原因编辑人们的答案:) 这有点回复。
【解决方案2】:

修改代码如下

<?php    
      $array = array('myName' => 'Becca', 'favColor' => 'violet', 'favMovie' => 'Empire Strikes Back', 'favBook' => 'Lullaby', 'favWeb' => 'twitter.com');

$myName = $array['myName'];

echo '<h1>' . $myName . '</h1>';

 function my_function($array)
    {
       $count = 0;
       echo "<ul>";
       foreach($array as $key => $value)
       {
           if($key != "myName")
           {
               echo "<li>".$value."</li>";
           }

        }
        echo "</ul>"; 



    }    


my_function($array);

【讨论】:

  • 非常感谢!这绝对有帮助。我最终做了函数/循环部分有点不同: function myFunction($array) { foreach ($array as $key => $value) { if($key != "name") { echo "
  • " . $价值。 "
  • ";
猜你喜欢
相关资源
最近更新 更多
热门标签