【问题标题】:How to sort a sub value of a string?如何对字符串的子值进行排序?
【发布时间】:2011-10-09 07:00:26
【问题描述】:

我有一个变量,当 var_dump 输出这个值时

string(86) "[新日期(2011, 07, 10), 10],[新日期(2011, 07, 19), 50],[新日期(2011, 07, 18), 61]"

我需要根据日期值对字符串值进行排序
我的意思是

    new Date(2011, 07, 10)
    new Date(2011, 07, 18)
    new Date(2011, 07, 19)

如何做到这一点?

【问题讨论】:

  • 所以你想按时间顺序对字符串中的项目进行排序吗?将字符串项解析为数组对数组进行排序并从该排序数组创建一个字符串。
  • 值来自哪里?是否有可能在它们变为字符串之前获取值?在生成字符串之前进行排序可能会更好?
  • hello sub digger foreach ($ga->getResults() as $result) { $date = explode(' ', $result); $visits = $result->getVisits(); $j_input .= "[新日期($date[0], $date[1], $date[2]),$visits],"; $output = substr($j_input, 0, -1);现在显示输出的值,我需要根据 $date[2] 对字符串进行排序。 }
  • @Ezhil:让它成为答案而不是评论。

标签: php arrays string variables multidimensional-array


【解决方案1】:

试试这样的

function sort_date($a, $b)
{
    return $a[2] > $b[2] ? -1 : ($b[2] > $a[2] ? 1 : 0);
}

$date_list = array();
foreach ($ga->getResults() as $result) {
 $date = explode(' ', $result);
 $date[] = $result->getVisits();
 $date_list[] = $date;
} 

usort($date_list, 'sort_date');

$j_input = '';
foreach ($date_list as $date)
  $j_input .= "[new Date(".$date[0].", ".$date[1].", ".$date[2]."),".$date[3]."],"; 

或者如果 $ga 是你的对象,那么这个能力可以更好地放入对象中

【讨论】:

  • 伙计,你是完全正确的,被这个卡住了几个小时,你在几秒钟内就把它弄坏了。非常感谢。
猜你喜欢
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 2021-11-25
  • 2015-08-13
  • 1970-01-01
相关资源
最近更新 更多