1

これはexplode解決できません

私はいくつかの配列を持っています

$order
data: {5,3,2}

$title,
data: {USA, England, China}

$attribute
Same idea 

$type
Same idea 

$ orderにはすでに何らかの値
{5,3,2}が存在し、それぞれに対応する$ title、$ attribute、$type値があります

eg. 5 USA  att5 type5

順序を{2,3,5}に並べ替えたいのですが、他の配列の対応するデータも並べ替えられます。

eg. {2,3,5}

その後の配列$titleの場合

{China, England,USA}

これをすべてのアレイに実装するにはどうすればよいですか?ありがとうございました

私のアイデアは連想配列を使用することで、キーを並べ替えることができ、すべてが完了します。ただし、配列を生成できません

私のアイデア配列:

$records = array(5 => array("title" => "USA",   "att" => "add5"),
                 3 => array("title" => "England",  "att" => "add3"),
                 2 => array("title" => "China", "att" => "add2"));
4

5 に答える 5

1

スクリプトのこれらの行の後

$string = substr($string, 0, -1);
$records="array (".$string.");";

あなたは付け加えられます

eval("\$records = $records;");

eval関数については、http://php.net/manual/es/function.eval.phpと、それを使用するときに本当に注意する必要がある理由について読むことができます。

于 2012-04-14T18:02:20.070 に答える
1

1つでexplodeは不十分な場合は、2つexplodeが役立ちます;)

$records = Array();
foreach(explode("\n", trim($string)) as $line)
{
   list($order,$title,$attribute,$type) = explode(",", $line);
   $records[$order] = Array("title" => $title, "attribute" => $attribute, "type" => $type);
}
ksort($records);
于 2012-04-14T18:02:57.937 に答える
1

文字列から配列に変換する代わりに、それを構築することができます

$result = array();
$countItem=0;
foreach ($order as $itemID)
{
     $result [$countItem] = array('id' => $itemID, 'title' => $title[$countItem],   'attribute' => $att[$countItem],'type'=>$type[$countItem]);
     $countItem++;
}

次にIDで並べ替えます

于 2012-04-14T18:04:09.907 に答える
1
<?php

$order = array(5, 3, 2);    // or $order = array("5", "3", "2");
$title = array("USA", "England", "China");
$att = array("Att 1", "Att 2", "Att 3");
$type = array("Type 1", "Type 2", "Type 3");

$records = array();
foreach ($order as $i => $o) 
    $records[$o] = array("title" => $title[$i], "att" => $att[$i], "type" => $type[$i]);

ksort($records, SORT_NUMERIC);

print_r($records);

?>
于 2012-04-14T18:40:28.183 に答える
1

これで状況がより明確になりましたarray_multisort 。http://php.net/manual/en/function.array-multisort.phpを使用することをお勧めします

于 2012-04-14T18:47:49.857 に答える