php数组算法有问题吗

php数组算法有问题吗,php,arrays,algorithm,Php,Arrays,Algorithm,我不擅长算法。这是我的麻烦 我有一个数组: $test_arr = array( 0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd', 4 => 'e', 5 => 'f', 6 => 'g', 7 => 'h', 8 => 'i', ); 如何使用以下算法对其重新排序: $test_arr = array( 0 => array( 'a', 'b', ),

我不擅长算法。这是我的麻烦

我有一个数组:

$test_arr = array(
  0 => 'a',
  1 => 'b',
  2 => 'c',
  3 => 'd',
  4 => 'e',
  5 => 'f',
  6 => 'g',
  7 => 'h',
  8 => 'i',
);
如何使用以下算法对其重新排序:

$test_arr = array(
  0 => array(
    'a', 'b',
  ),
  1 => array(
    'c', 'd',
  ),
  2 => array(
    'e', 'f'
  ),
  3 => array(
    'g', 'h',
  ),
  4 => array(
    'i',
  ),
);

提前谢谢

以下是您正在寻找的算法:

$test_arr = array(
  0 => 'a',
  1 => 'b',
  2 => 'c',
  3 => 'd',
  4 => 'e',
  5 => 'f',
  6 => 'g',
  7 => 'h',
  8 => 'i',
);

$tmp_array = [];
$new_array = [];
$i = 1;
foreach($test_arr as $k => $v){
    if($i % 2 == 0){
        $tmp_array[] = $v;
        $new_array[] = $tmp_array;
        $tmp_array = [];
    }else{
        $tmp_array[] = $v;
    }

    $i++;
}
if(count($tmp_array) > 0){
    $new_array[] = $tmp_array;
}


echo '<pre>';
print_r($new_array);
$test\u arr=数组(
0=>a',
1=>“b”,
2=>c',
3=>d',
4=>“e”,
5=>f',
6=>g',
7=>“h”,
8=>“i”,
);
$tmp_数组=[];
$new_数组=[];
$i=1;
foreach($k=>v){
如果($i%2==0){
$tmp_数组[]=$v;
$new_array[]=$tmp_array;
$tmp_数组=[];
}否则{
$tmp_数组[]=$v;
}
$i++;
}
if(计数($tmp_数组)>0){
$new_array[]=$tmp_array;
}
回声';
打印(新阵列);

PHP已经有了一个内置函数来完成完全相同的任务。即
array\u chunk()

试试这个:

<?php
$test_arr = array(
  0 => 'a',
  1 => 'b',
  2 => 'c',
  3 => 'd',
  4 => 'e',
  5 => 'f',
  6 => 'g',
  7 => 'h',
  8 => 'i',
);
$newarray = array();
foreach( $test_arr as $key => $value){
    if ( ($key == 0) || (($key % 2) == 0)){ 
        if( isset($test_arr[($key + 1)]) ) { $next = $test_arr[($key + 1)]; } else { $next = ''; }
        $newarray[] = array($value,  $next);
    }
}
echo print_r($newarray, true);
?>

此解决方案循环给定数组,仅当当前键为0或偶数时,才会将当前值和下一个值保存到新数组

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
            [1] => f
        )

    [3] => Array
        (
            [0] => g
            [1] => h
        )

    [4] => Array
        (
            [0] => i
            [1] => 
        )

)

Google:
PHP array\u chunk()
虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
            [1] => f
        )

    [3] => Array
        (
            [0] => g
            [1] => h
        )

    [4] => Array
        (
            [0] => i
            [1] => 
        )

)