如何在多个键值中转换单个逗号数组值



我想转换以下值

Array
(
   [0]=>4,9
)

到此值

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

您可以使用以下解决方案:

<?php
//the current array and an empty new array to get the result.
$cur_array = [0 => "4,9", 1 => "5,9"];
$new_array = [];
//run through all array values to convert these.
for ($i = 0; $i < count($cur_array); $i++) {
    //get an array of the comma separated list.
    $part = explode(',', $cur_array[$i]);
    //add the array of comma separated list to the new array (result).
    $new_array = array_merge($new_array, $part);
}
//convert all string values to integer values.
for ($j = 0; $j < count($new_array); $j++) {
    $new_array[$j] = intval($new_array[$j]);
}
//output of the new array (debug).
var_dump($new_array);

演示:https://ideone.com/1WFv4V

。或以下使用array_values的更紧凑的解决方案:

<?php
$oldarr = [0 => "4,9", 1 => "5,9"];
$newarr = [];
foreach (array_values($oldarr) as $arrpart) {
    $newarr = array_merge($newarr, explode(',', $arrpart));
}
var_dump($newarr);

如果您的值是十进制数,则可以使用以下方法:

<?php
$oldarr = [0 => 4.9, 1 => 5.9, 2 => 6];
$newarr = [];
foreach (array_values($oldarr) as $arrpart) {
    $newarr = array_merge($newarr, explode('.', $arrpart));
}
var_dump($newarr);
$array = array( 0 => '4,9');
foreach($array as $data){
  $commaSeparatedArr =  explode(',',$data); 
}
print_r($commaSeparatedArr);

使用内爆和爆炸。
首先用逗号内爆数组中的所有值,然后在逗号上爆炸。

$result = explode(",", implode(",", $array));

请参阅示例:https://3v4l.org/JGOAB

$oldarr = [0 => 4,9];
$string = implode(',',$oldarr);
$new_array = explode(',',$string);
print_r($new_array);

替换数组的值。

$array = ["4,9,7,14", "7,9,68"];
$new_array = [];
foreach($array as $a) {
   array_map(function($a_r) {
      $new_array[] = (int) $a_r
   }, exlpode(",", $a));
}
var_dump($new_array);
/* Output
Array (
  [0] => int 4,
  [1] => int 9,
  [2] => int 7,
  [3] => int 14,
  [4] => int 7,
  [5] => int 9,
  [6] => int 68
)
*/

最新更新