2016-05-31 66 views
-1

我有一个数组一样,例如这样的:排序数组,然后做的时候

$fruits = array("lemon", "orange", "banana"); 

,如果我的print_r这个我得到:

[0] lemon 
[1] orange 
[2] banana 

我想按字母顺序,然后解决这打印出来经历的阵列,所以我所做的:

sort($all_venues); 
$i = 0; 
$results = 0; 
if (isset($_GET['filter1']) && isset($_GET['filter2'])) { 
    while ($i < count($all_venues)) { 
     if (in_array($f1, $venues[$i]) && in_array($f2, $venues[$i])) { 
      echo '&diams; <a href="'.$venues[$i]['url'].'" target="main">'.$venues[$i]['name'].'</a> '; 
      $results++; 
     } 
     $i++; 
     if ($i == count($all_venues)) { 
      if ($results == 0) 
       echo '<i>no venues matching your filters</i>'; 
      else 
       echo ' &diams;'; 
     } 
    }  
} else { 
    while ($i < count($all_venues)) { 
     if (in_array($f1, $venues[$i])) { 
      echo '&diams; <a href="'.$venues[$i]['url'].'" target="main">'.$venues[$i]['name'].'</a> '; 
     } 
     $i++; 
     if ($i == count($all_venues)) 
      echo ' &diams;'; 
    } 
} 
unset($i); 

怎么来的。如果我print_r的排序后的数组我看到预期的结果(巴南a,lemon,orange)但while循环没有按照正确的顺序回显它们?

+0

发布您的*实际*代码。你给我们的是一个无限循环,并且*不保证'$ i'将从零开始。 – paxdiablo

+0

你正在循环外部增加'$ i'! – Thamilan

+0

确定对不起家伙...我知道你必须初始化$ i,并且它需要在循环内...我急匆匆地编写了这段代码,以避免将我的实际代码丢在这里,出于上下文......我道歉。 。sooooo我已经用我的实际代码更新了这个问题,因为在这里添加的时间太长了......对不起,亲爱的朋友 – marcnyc

回答

2

编辑

您的代码打印出了错误的数据/信息,因为你排序$all_venues但是从$venues打印。


你正在创建一个无限循环...

但是,让我们先从第一个问题。

你是echo'ing $fruit而不是你的实际数组:$fruits


第二个问题你递增$i外面的循环....这样通过阵列永远迭代。你从来没有定义变量。你想要的是这样的:

$i = 0; 
while($i < count($fruits)) { 
    echo $fruits[$i]; 
    $i++; 
} 

将返回:bananalemonorange

Example/Demo

+1

嗯,bananalemonorange,果味善良的完美风暴。不过,当我第一次看到它时,我看到了“平庸的动物园”,这让我想起了我的同事几个工作之前:-) – paxdiablo

+0

@paxdiablo特别是当你按顺序吃东西时;-) – Darren

+0

它很好,它简单固定。但让OP尝试用他的代码找出问题。如果我们给出小修复的答案,那么初学者就不会想到自己的问题。我们可能需要提出他的回答 – Thamilan

0

我猜你需要asort()

$fruits = array("lemon", "orange", "banana"); 
asort($fruits); 
foreach($fruits as $fruit){ 
    echo $fruit; 
} 
//bananalemonorange 

了解更多关于Sorting Arrays

+0

请参阅我的编辑 – marcnyc

+1

在第一个“while”前执行'asort($ all_venues)'' –