先將所有數(shù)據(jù)放到一個(gè)數(shù)組里
10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有庫倫免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
$arr_new_str =Array();//放字符串的數(shù)組
$arr_new_obj = Array();//放對(duì)象的數(shù)組
foreach( $arr_old as $arr_in ){
foreach( $arr_in as $value){
//雙重遍歷,開始 將字符串和對(duì)象分開
if( $value instanceof stdClass )
{ //所有對(duì)象
$arr_new_obj[] =$value;
}else {//所有字符串
$arr_new_str[]=$value;
}
}
}
//array_unique()函數(shù),我不清楚能不能排除對(duì)象,所以我又分了一次
$arr_new= array_unique( $arr_new_str );
//驗(yàn)證對(duì)象
$count = count( $arr_new_obj);
for( $i=0;$i$count;$i++){
//得到對(duì)象數(shù)組的第一個(gè)值,
for($j=$i+1;$j$count;$j++){
//將第一個(gè)對(duì)象和其他值比較,
if( $arr_new_obj[ i ] == $arr_new_obj[ j ] ){
//相等,就將第一個(gè)刪除;依次類推
unset( $arr_new_obj[ i ] );
}
}
}
//最后得到的就是沒有相同對(duì)象的新數(shù)組
//和并兩個(gè)數(shù)組;
$array_new = array_merge( $arr_new ,$arr_new_obj );
//array_merge() 函數(shù)把兩個(gè)或多個(gè)數(shù)組合并為一個(gè)數(shù)組。
//如果鍵名有重復(fù),該鍵的鍵值為最后一個(gè)鍵名對(duì)應(yīng)的值(后面的覆蓋前面的)。如果數(shù)組是數(shù)
//字索引的,則鍵名會(huì)以連續(xù)方式重新索引。
這個(gè)題,我認(rèn)為 難在如何判斷兩個(gè)對(duì)象是否相等,我也是,百度了一下,才知道的,請(qǐng)樓主也學(xué)習(xí)一下;
我的方法比較長,我看一樓 用到的 遞歸,水準(zhǔn)比我高多了,學(xué)習(xí)了
在利用jQuery EasyUI框架進(jìn)行程序開發(fā)時(shí),碰到前臺(tái)將JSON格式數(shù)據(jù)傳遞到服務(wù)器后臺(tái),經(jīng)php的json_decode函數(shù)轉(zhuǎn)換成的數(shù)組由于為對(duì)象數(shù)組,php程序無法對(duì)數(shù)據(jù)進(jìn)行正常處理的情況,為此需要開發(fā)一個(gè)PHP回調(diào)函數(shù)(objarray_to_array)將對(duì)象數(shù)組轉(zhuǎn)換成普通數(shù)組。
/**
* 對(duì)象數(shù)組轉(zhuǎn)為普通數(shù)組
*
* AJAX提交到后臺(tái)的JSON字串經(jīng)decode解碼后為一個(gè)對(duì)象數(shù)組,
* 為此必須轉(zhuǎn)為普通數(shù)組后才能進(jìn)行后續(xù)處理,
* 此函數(shù)支持多維數(shù)組處理。
*
* @param array
* @return array
*/
function objarray_to_array($obj) {
$ret = array();
foreach ($obj as $key = $value) {
if (gettype($value) == "array" || gettype($value) == "object"){
$ret[$key] = objarray_to_array($value);
}else{
$ret[$key] = $value;
}
}
return $ret;
}
這里定義2個(gè)php匿名對(duì)象和數(shù)組相互轉(zhuǎn)換的函數(shù),代碼如下:
function array2object($array) {
if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key = $val){ $obj-$key = $val; } } else { $obj = $array; } return $obj;}function object2array($object) { if (is_object($object)) { foreach ($object as $key = $value) { $array[$key] = $value; } } else { $array = $object; } return $array;}
用法示例如下:
$array = array('foo' = 'bar','one' = 'two','three' = 'four');$obj = array2object($array);print $obj-one; // output's "two"$arr = object2array($obj);print $arr['foo']; // output's bar
需要準(zhǔn)備的材料分別是:電腦、php編輯器、瀏覽器。
1、首先,打開php編輯器,新建php文件,例如:index.php,填充問題基礎(chǔ)代碼。
2、在index.php中,輸入代碼:echo json_encode($a);。
3、瀏覽器運(yùn)行index.php頁面,此時(shí)A對(duì)象被轉(zhuǎn)化為字符串后被打印出來了。
當(dāng)前文章:php對(duì)象轉(zhuǎn)數(shù)據(jù)組 phpjson轉(zhuǎn)數(shù)組
網(wǎng)頁路徑:http://chinadenli.net/article46/dodsjeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、用戶體驗(yàn)、靜態(tài)網(wǎng)站、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)