问题
I am new to PHP so be kind. :) I have a 3 deep array. Something like this:
Array(5) { 
[0]=> array(5) { 
    [0]=> string(0) "" 
    [1]=> string(21) "0,245.19000000,864432"
    [2]=> string(21) "1,245.26000000,864432" 
    [3]=> string(21) "2,245.49000000,864432" 
    [4]=> string(21) "4,245.33000000,864432" 
}
[1]=> array(5) { 
    [0]=> string(0) "" 
    [1]=> string(21) "0,245.19000000,864453" 
    [2]=> string(21) "1,245.26000000,864453" 
    [3]=> string(21) "2,245.49000000,864453" 
    [4]=> string(21) "4,245.33000000,864453" 
 }
}...
I want to explode the inner string by commas ("2,245.49000000,864453") so the arrays becomes 4 deep like so:
Array(5) { 
  [0]=> array(5) { 
    [0]=> string(0) "" 
    [1]=> array (3)
              [0]=> "0"
              [1]=> "245.19000000"
              [2]=> "864432"
    [2]=> array (3)
              [0]=> "1"
              [1]=> "245.26000000"
              [2]=> "864432"
    [3]=> array (3)
              [0]=> "3"
              [1]=> "245.49000000"
              [2]=> "864432"
    [4]=> array (3)
              [0]=> "4"
              [1]=> "245.3000000"
              [2]=> "864432"
    [4]=> array (3)
              [0]=> "5"
              [1]=> "245.3300000"
              [2]=> "864432"
 }
}
...
So far I have:
$done = array();
for ($i = 0; $i<=count($chunks); $i++) { //loops to get size of each 2d array
$r = count($chunks[$i]);
        for ($c = 0; $c<=count($chunks[$r]); $c++) { //loops through 3d array
        $arrayparts = $chunks[$i][$c];
        $done[] = explode(",", $arrayparts); //$arrayparts is 3d array string that is exploded each time through loop
    }
}
I think this code should work but when I var_dump nothing prints? Can someone help me learn?
Thanks!
Suggested: $chunks is 3d array
foreach($chunks as $innerArray) {
        $result[] = array_map(function($v){
            return explode(",", $v);
        }, $innerArray);
    }
    回答1:
Don't make it complicated, just use this:
(Here I go through each innerArray with a foreach loop and then I go through all values with array_map() and explode it and return it to the results array)
<?php
    foreach($arr as $innerArray) {
        $result[] = array_map(function($v){
            return explode(",", $v);
        }, $innerArray);
    }
    print_r($result);
?>
    回答2:
This uses array_map() two times.  Maybe a better way but I'm on beer three:
$result = array_map(function($v){
                        return array_map(function($v){ return explode(',', $v); }, $v);
                    }, $array);
    来源:https://stackoverflow.com/questions/29401817/split-values-in-array-using-explode-to-form-multidimensional-array