我有一个数组,我想将其更改为多维数组。我怎样才能做到这一点?

时间:2018-12-04 05:00:49

标签: php arrays multidimensional-array

这是我的数组:

$array=["a2","a5","a7","b3","b8","b9"];

我想将其更改为:

$result=["a"=>[2,5,7],"b"=>[3,8,9]; 

4 个答案:

答案 0 :(得分:1)

您可以使用php函数substr

public function convertArray($array)
    {
        $new_Arr = array();
        foreach ($array as $value) {
            $new_Arr[substr($value, 0, 1)][] = substr($value, 1);
        }
        return $new_Arr;
    }

答案 1 :(得分:0)

您只需使用str_split(); php函数就可以达到预期的效果。

  

str_split —将字符串转换为数组

<?php
$array = ["a2","a5","a7","b3","b8","b9"];
$issetArray = array();

foreach($array as $key => $value)
{
    $string = str_split($value, 1);
    $keyArray[] = $string[0];
    if(isset($issetArray[$string[0]]))
    {
        $issetArray[$string[0]] .= ", ".$string[1];
    }
    else
    {
        $issetArray[$string[0]] = $string[1];
    }
}
print_r($issetArray);

?>

您可以从here

了解有关str_split()的更多信息
  

注意:考虑到给定的格式是一致的

答案 2 :(得分:0)

$array = ["a2", "a5", "a7", "b3", "b8", "b9"];
$main = array();
for ($i = 0; $i < count($array); $i++) {

    $str_sep = str_split($array[$i]);
    if (!in_array($str_sep[0], $main)) {
        array_push($main, $str_sep[0]);
        $main[$str_sep[0]]= $str_sep[1];
    }else{
        $main[$str_sep[0]].= ", ".$str_sep[1];
    }
}

答案 3 :(得分:0)

另一种方法:

<?php
    $array = ["a2","a5","a7","b3","b8","b9"];
    $finalArr = array();
    foreach($array as $val){
        $key  = $val[0]; //as string is an array of characters
        $finalArr[$key][] = intval(strrev($val));
    }
    print_r($finalArr);

在此处检查输出:https://paiza.io/projects/H2Cu89RmYBi_RDSJ_loVEw