没有php内置排序功能的排序数组

时间:2018-07-13 22:57:23

标签: php arrays sorting

我是编程方面的新手,首先研究有关数组的PHP语言。我可以使用sort函数对数组进行排序,但是我陷入了困境。

如果我输入了array(1,3,5,6,7,8,11,12,17,11) 我尝试获取输出12或更大的2,但是如果我做print_r($array[i] - 1); 我刚得到10-1=9。我如何获得价值12

,然后如果我输入了array(1,2,3,5,6),由于缺少数字4,我尝试获取输出false。 我做排序功能:

for(int j:0;j<=count($array) ;j++) {
   for(int i:0;i<=count($array[i+1]);i++{
      if($array[i]>$array[$+1]{
         $temp=$array[$i+1];
         $array[$i+1]=$array[$i];
         $array[$i]=temp;
      }
   }
}
print_r($array) ;

感谢有人可以帮助我还是教我? :)

1 个答案:

答案 0 :(得分:0)

您的代码中有很多语法错误。检查您的问题下的评论,他们几乎覆盖了它。

要使用自定义排序对数组进行排序,可以使用以下方法:

$array = array(1,3,5,6,7,8,11,12,17,11);
$arrayCount = count($array);  // no need to evaluate the count on every iteration of the for loop

for($i=0; $i < $arrayCount - 1; $i++)
{
    for($j = $i+1; $j < $arrayCount; $j++)
    {
        // if you want the array sorted from bigger to smaller number use `>` here
        if($array[$j] < $array[$i])
        {
            $temp = $array[$i];
            $array[$i] = $array[$j];
            $array[$j] = $temp;
        }
    }
}

print_r($array);

输出:

Array
(
  [0] => 1
  [1] => 3
  [2] => 5
  [3] => 6
  [4] => 7
  [5] => 8
  [6] => 11
  [7] => 11
  [8] => 12
  [9] => 17
)

现在要从数组或false(如果不存在)中检索所需的值,您可以使用内置的array_search()方法来编写类似的内容:

// Check if array contains a value 12, if it does return the index location in the array
// returns false if the value is not found
$index = array_search(12, $array); 

if($index === false)
{
    echo 'Value does not exist in the array.';
}
else
{
    echo 'Value '.$array[$index].' is at index '.$index.' in the array.';
}