这不是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"));
答案 0 :(得分:1)
在剧本上的这些行之后
$string = substr($string, 0, -1);
$records="array (".$string.");";
您可以添加
eval("\$records = $records;");
您可以在http://php.net/manual/es/function.eval.php阅读有关评估函数的信息,以及使用它时应该非常小心的原因
答案 1 :(得分:1)
其中一个explode
是不够的,两个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);
答案 2 :(得分: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
对其进行排序答案 3 :(得分: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);
?>
答案 4 :(得分:1)
array_multisort
http://php.net/manual/en/function.array-multisort.php