0

私は配列を持っています

Array
(
    [0] => Array
        (
            [id_session] => 174
            [id_participant] => 191
            [participant] => A[mail1@xy.com]
        )

    [1] => Array
        (
            [id_session] => 175
            [id_participant] => 177
            [participant] => B[mail2@xy.com]
        )

    [2] => Array
        (
            [id_session] => 175
            [id_participant] => 189
            [participant] => C[mail3@xy.com]
        )

)

jsonまたは複数のdim配列を取得したい

Array
(
    [174] => Array([191]=>A[mail1@xy.com]),
    [175] => Array
        (            
            [177] => B[mail2@xy.com],
            [189] => C[mail3@xy.com]
        )

)

誰でもそれをどうやって手伝ってくれますか?

ありがとう

4

3 に答える 3

1
$new_array = array();
foreach($old_array as $inner_array) {
    if(!isset($new_array[$inner_array['id_session']]))
        $new_array[$inner_array['id_session']] = array();
    $new_array[$inner_array['id_session']][] = $inner_array['participant'];
}
于 2012-08-07T15:48:03.930 に答える
1
// initialize the array which will contain the result
$resultArray = [];
foreach($sourceArray as $item) {
    // if there is no item in the array with the session is init the item
    if (!array_key_exists($item['id_session'], $resultArray)) {
        $resultArray[$item['id_session']] = [];
    }

    // add the item to the result
    $resultArray[$item['id_session']][$item['id_participant']] = $item['participant'];
}

新しい配列構文を使用していることに注意してください。PHP < 5.4 を使用している場合は[]array().

デモ

于 2012-08-07T15:54:44.367 に答える
0

$ resultが新しい構造になり、$arrayが既存の構造になります。

 $result=array();
 foreach($array as $record)
 {
    $result[$record['id_session']][$record['id_participant']]=$record['participant']; 
 }

また

$result=array();
while($record=mysql_fetch_assoc($query_result))
{
    $result[$record['id_session']][$record['id_participant']]=$record['participant']; 
}
于 2012-08-07T15:47:21.280 に答える