【问题标题】:generate arrays from string从字符串生成数组
【发布时间】:2012-08-16 12:01:40
【问题描述】:

当我跑步时:

while($r = mysql_fetch_assoc($result3)) { 

echo json_encode($r); 

}

结果是:

{"test1":"1","test2":"2","test3":"3","test4":"4"}

{"test1":"5","test2":"5","test3":"7","test4":"8"}

我的问题是: 知道行数不固定,我如何从上面的结果创建数组,它可能会根据数据而改变。因此,我可以对数组进行更改并以类似于以下的格式对其进行解析:

["test1"=>"1","5"],

["test2"=>"2","6"], 

["test3"=>"3","7"], 

["test4"=>"4", "8"]

谢谢!!

【问题讨论】:

  • 请print_r($result3); 然后把结果放在这里不管它显示什么很容易帮助它
  • @Jalpesh: $result3 (大概)是一个 MySQL 资源标识符。
  • @kech:假设test2 的第二个值的变化(从当前输出中的5 到所需输出中的6)仅仅是一个错字?无论如何,每个数组元素都有自己的键,因此如图所示的所需输出并没有真正意义:也许您正在寻找类似 @​​987654329@ 的东西?
  • @eggyal 好吧,这也是我的猜测......
  • @Jalpesh:是的 - 它是 MySQL 资源标识符。 print_r($r) 给出: ( [test1] => 1 [test2] => 2 [test3] => 3 [test4] => 4 ) 数组 ( [test1] => 5 [test2] => 6 [test3] => 7 [test4] => 8)

标签: php javascript arrays json merge


【解决方案1】:

试试这个:

<?php

$arr = array();

while ($r = mysql_fetch_assoc($result3)) 
{ 
    foreach ($r as $index=>$item)
    {
        $arr[$index][]=$item;
    }
}

?>

并编码为 JSON (重新排列数组后):

$arr = json_encode($arr);

【讨论】:

  • +1 为了完整起见,我还会在此处显示您执行json_encode() 的位置(即退出while 循环之后)。
  • @eggyal 如果他真的想要它作为 Json。 (我的猜测是他使用json 只是作为输出显示的一种手段)
  • 也许...但问题被标记为javascript 和json,所以我的猜测不是。
  • 如果我真的很迂腐,我会指出您的编辑仍然没有明确在哪里应该对json_encode() 进行调用。但我不会那样做。 ;)
  • 当我运行 print_r($arr[$index]);在 foreach 里面我得到没有键的值:( [0] => 1 )数组( [0] => 2 )数组( [0] => 3 )数组( [0] => 4 )数组( [0] => 5 ) Array ( [0] => 6 ) Array ( [0] => 7 ) Array ( [0] => 8 ) 无论我放在哪里 $arr = json_encode($arr);当我运行 print_r($arr); 在 while 循环内部或外部时它显示 ( [test1] => 数组 ( [0] => 5 ) [test2] => 数组 ( [0] => 6 ) [test3] => 数组 ( [0] => 7 ) [test4] =>数组 ( [0] => 8 ) )
猜你喜欢
  • 2018-07-26
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多