Манипулирование массивом PHP - PullRequest
3 голосов
/ 14 января 2010

у меня есть этот массив:

Array
    (
      0 => "3_some val",
      1 => "1_some other val",
      2 => "0_val",        
      3 => "2_value",
      4 => "4_other value"
    )

Учитывая вышеупомянутый массив, есть ли способ сделать из этого массив, подобный этому?

Array
    (
      0 => "val",
      1 => "some other val",
      2 => "value",        
      3 => "some val",
      4 => "other value"
    )

фактически заставляет число, предшествующее этому подчеркиванию (_), быть ключом во вновь созданном массиве. спасибо

1 Ответ

5 голосов
/ 14 января 2010

Это должно сделать это:

$arr1 = array (
  0 => "3_some val",
  1 => "1_some other val",
  2 => "0_val",        
  3 => "2_value",
  4 => "4_other value"
);

$result = array();

foreach($arr1 as $val) {
    list($key, $value) = explode('_', $val, 2);
    $result[$key] = $value;
}

// Sort by keys
ksort($result);

Doing print_r($result) распечатает:

Array
(
    [0] => val
    [1] => some other val
    [2] => value
    [3] => some val
    [4] => other value
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...