問題
數組轉化成字符串問題
解決方法
問個數組問題,我現在獲取得到的一個二維數組變量: $postanswer=$_POST["answer{$showarr['cs_id']}"];
復制代碼打印出來的值是: Array
(
[43] => Array
(
[A] => A
[B] => B
)
[42] => Array
(
[C] => C
[D] => D
)
[41] => Array
(
[B] => B
[C] => C
)
[40] => Array
(
[B] => B
[D] => D
)
[39] => Array
(
[A] => A
[D] => D
)
[35] => Array
(
[B] => B
)
)
復制代碼現在我想把他們以前面的ID號為組,組內成員以“,”隔開。不知道哪位大俠能幫我看看,感激不盡!
參考答案
$myArr = array();
$listArr = array();
foreach ($_POST["answer{$showarr['cs_id']}"] as $key=>$item){
foreach ($item as $key2=>$value){
$listArr[] = $key2.'-'.$value;
}
$myArr[$key] = join(',',$listArr);
}
var_dump($myArr);
復制代碼??這樣?
參考答案
用t隔開
參考答案
原帖由 yafeikf 於 2009-1-3 14:28 發表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=813511&ptid=100247]鏈接標記[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
嘿嘿!不行啊!顯示: array(5) {
[47]=>
string(3) "A,B"
[46]=>
string(7) "A,B,B,C"
[45]=>
string(11) "A,B,B,C,A,C"
[44]=>
string(15) "A,B,B,C,A,C,B,D"
[36]=>
string(19) "A,B,B,C,A,C,B,D,C,D"
}
復制代碼是不是循環問題啊?
[ ]
參考答案
應該可以的!我沒有測試過!
$postanswer = $_POST["answer{$showarr['cs_id']}"];
$new_array = array();
for($postanswer as $key => $value) {
if(isset($new_array[$key])) {
$new_array[$key] .= ','.$value;
} else {
$new_array[$key] = $value;
}
}
print_r($new_array);
?>
復制代碼
參考答案
換一個思路吧。
且不說怎麼實現,先想想你的意圖。
這麼做是會出問題的,如果你的數組裡面有 “,” 呢?
你再怎麼把它還原?
趕緊丟掉這個想法,使用 serialize 和 unserialize 吧。
參考答案
原帖由 liexusong 於 2009-1-3 16:47 發表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=813732&ptid=100247]鏈接標記[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
應該可以的!我沒有測試過!
呵呵...不行!順便挑個錯誤,循環時應該是foreach而不是for的吧?
參考答案
原帖由 hubinhust 於 2009-1-3 19:13 發表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=813834&ptid=100247]鏈接標記[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
換一個思路吧。
且不說怎麼實現,先想想你的意圖。
這麼做是會出問題的,如果你的數組裡面有 “,” 呢?
你再怎麼把它還原?
趕緊丟掉這個想法,使用 serialize 和 unserialize 吧。
這個應該不會出現,至少在這裡!因為我提交的是測試提的答案ABCD。
參考答案
哦~原來我看錯了!應該這樣的!
$postanswer = $_POST["answer{$showarr['cs_id']}"];
$new_array = array();
foreach($postanswer as $element) {
foreach($element as $key => $value) {
if(isset($new_array[$key])) {
$new_array[$key] .= ','.$value;
} else {
$new_array[$key] = $value;
}
}
}
print_r($new_array);
?>
復制代碼
參考答案
原帖由 liexusong 於 2009-1-3 20:10 發表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=813889&ptid=100247]鏈接標記[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
哦~原來我看錯了!應該這樣的!
斑竹,這次還不行,居然輸出這: Array
(
[A] => A,A
[D] => D,D,D
[B] => B,B
[C] => C
)
復制代碼