Php 数组值按选定值排列

Php 数组值按选定值排列,php,arrays,Php,Arrays,我有以下数组: $days = array(1, 2, 3, 4, 5, 6, 0); 我选择的值是4,我可以得到如下数组: $result = array(4, 5, 6, 0, 1, 2, 3); 代码如下: $days = array(1, 2, 3, 4, 5, 6, 0); $split_by = array_search(4, $days); if ($split_by) { $first = array_slice($days, 0, $split_by); $

我有以下数组:

$days = array(1, 2, 3, 4, 5, 6, 0);
我选择的值是
4
,我可以得到如下数组:

$result = array(4, 5, 6, 0, 1, 2, 3);
代码如下:

$days = array(1, 2, 3, 4, 5, 6, 0);
$split_by = array_search(4, $days);
if ($split_by) {
    $first = array_slice($days, 0, $split_by);
    $second = array_slice($days, $split_by);
}
$result = array_merge($second, $first);
print_r($result);

但是,当我将所选值作为
1
传递时,它会给我一个空数组。

$split\u by
是索引
0
,当您搜索
1
时,
0
大致等同于
false
,因此您的
if
语句失败并且
$first
second
数组不会被创建。严格比较
false

if ($split_by !== false) {
您还可能希望在
中进行合并,如果

if ($split_by !== false) {
    $first = array_slice($days, 0, $split_by);
    $second = array_slice($days, $split_by);
    $result = array_merge($second, $first);
} else {
    $result = false; //or something
}
   It will be work fine now use the code :

     $days = array(1, 2, 3, 4, 5, 6, 0);
     $split_by = array_search(1, $days);
    if (isset($split_by)) {
        $first = array_slice($days, 0, $split_by);
        $second = array_slice($days, $split_by);
    }
    $result = array_merge($second, $first);
    print_r($result);