fork download
  1. <?php
  2.  
  3. $input = array (
  4. 0 => 'Jack,140101d,10',
  5. 1 => 'Jack,140101a,15',
  6. 2 => 'Jack,140101n,20',
  7. 3 => 'Jane,141212d,20',
  8. 4 => 'Jane,141212a,25',
  9. 5 => 'Jane,141212n,30',
  10. );
  11.  
  12. $result = array();
  13.  
  14. foreach ($input as $key => $value) {
  15. $valueParts = explode(',',$value);
  16. $namePart = $valueParts[0];
  17. $idPart = substr($valueParts[1],0,-1);
  18. $charPart = substr($valueParts[1],-1);
  19. $nrPart = $valueParts[2];
  20. if(!array_key_exists($namePart, $result)) {
  21. $result[$namePart] = array();
  22. }
  23. if(!array_key_exists($idPart, $result[$namePart])) {
  24. $result[$namePart][$idPart] = array();
  25. }
  26. if(!array_key_exists($charPart, $result[$namePart][$idPart])) {
  27. $result[$namePart][$idPart][$charPart] = $nrPart;
  28. }
  29. }
  30.  
  31. var_dump($result);
  32.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
array(2) {
  ["Jack"]=>
  array(1) {
    [140101]=>
    array(3) {
      ["d"]=>
      string(2) "10"
      ["a"]=>
      string(2) "15"
      ["n"]=>
      string(2) "20"
    }
  }
  ["Jane"]=>
  array(1) {
    [141212]=>
    array(3) {
      ["d"]=>
      string(2) "20"
      ["a"]=>
      string(2) "25"
      ["n"]=>
      string(2) "30"
    }
  }
}