这是我的数组:
$array=["a2","a5","a7","b3","b8","b9"];
我想将其更改为:
$result=["a"=>[2,5,7],"b"=>[3,8,9];
答案 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);