2013-03-31 64 views
-2

我正在循環一個多維/巢數組,我得到以下結果,但是我想擺脫每個數組前面的「1」:索引號。避免打印數組的索引?

{"1":{"adjacencies":[{"nodeTo":"2"},{"nodeTo":"5"}],"data": {"$color":"#EBB056","$type":"star"},"id":1,"name":"rootWarbler<\/label>"}, 
"2":{"adjacencies":[{"nodeTo":"4"},{"nodeTo":"3"}],"data":{"$color":"#EBB056","$type":"star"},"id":2,"name":"rootJuniper tree<\/label>"}, 
"3":{"adjacencies":[null],"data":{"$color":"#EBB056","$type":"star"},"id":3,"name":"rootPuff Bird<\/label>"}, 
"4":{"adjacencies":[{"nodeTo":"5"},{"nodeTo":"3"}],"data":{"$color":"#EBB056","$type":"star"},"id":4,"name":"rootJackRabbit<\/label>"}, 
"5":{"adjacencies":[null],"data":{"$color":"#EBB056","$type":"star"},"id":5,"name":"rootMountain Lion<\/label>"}, 
"6":{"adjacencies":[{"nodeTo":"1"}],"data":{"$color":"#EBB056","$type":"star"},"id":6,"name":"rootBobcat<\/label>"}} 

這裏是我的while循環

$previd = -1; 
while($row=$result->FetchRow()) 
{ 
$id= (float)$row['n_id']; 
$name = $row['name']; 
$color1 = $row['color']; 
$type1 = $row['type']; 
$to= (float)$row['goingto']; 
$thumb =$row['thumb']; //image path 


if ($previd != $id) { 
    $previd = $id; 
    if ($previd != -1) { 
     array_push($array,$node); 
    } 

    $node[$id] = array(
     "adjacencies" => array(), 
     "data" => array(
       "$"."color" => $color1, 
       "$"."type" => $type1 
      ), 
     "id" => $id, 
     "name" => "<img src='".$thumb."' height='25' width='25' alt='root'/><label>".$name."</label>"); 
} 


if ($to != null) { 
    $node[$id]["adjacencies"][]=array("nodeTo" => "$to"); 
} 


} 
print_r($node); 
+4

你在這裏使用'json_encode()'對嗎? –

+0

我不明白。在擺脫1之後你想要什麼結果? (請在你的問題中編輯) – bestprogrammerintheworld

+0

從什麼時候print_r輸出JSON? – Ultimater

回答

0

很難有把握地說,但對於

for($node as $n) 
{ 
    print_r($n); 
} 

for($node as $k=>$n) 
{ 
    print_r($n); 
} 

不過說真的,print_r更的debu gging工具而不是輸出格式工具。

編輯:現在,我看到您的評論關於JSON ... use JSONjson_encode()

print(json_encode($node)); 

如果你仍然獲得與該數組的索引,你可以試試

print(implode("\n", array_map("json_encode", $node))); 
+0

這只是打印$節點出來,他沒有擺脫任何東西? – bestprogrammerintheworld

+0

@bestprogrammerintheworld:實際上,這樣可以避免隱式數組索引,它會導致1,2,3,4 ...從'print_r'語句中打印出來。有趣的是,我本來以爲世界上最好的程序員會知道這個...... – jedwards

+0

哈哈:-)啊哈。這就是他想要的。它沒有弄清楚實際的問題。 – bestprogrammerintheworld

1

我真的不明白你怎麼得到一個非常完美的JSON字符串,而不使用json_encode(),但我會盡我所能接近你真正想要的東西

echo json_encode(array_values($array)); 

其中$array是要轉換成JSON沒有索引號數組

所以這意味着它會是這樣

echo json_encode(array_values($node)); 

在這種情況下,你需要array_values()使用http://php.net/manual/en/function.array-values.php

+0

我實際上使用json,對不起,我打錯了。 – Squirtle