程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> array_diff函數的注意事項,array_diff函數

array_diff函數的注意事項,array_diff函數

編輯:關於PHP編程

array_diff函數的注意事項,array_diff函數


  array_diff — 計算數組的差集

  說明:

  array array_diff ( array $array1 , array $array2 [, array $... ] )  對比返回在 array1 中但是不在 array2 及任何其它參數數組中的值。注意鍵名保留不變。

  注意:本函數只檢查了多維數組中的一維。如果想比較更深的維度需要另寫一個函數,今天的工作就遇到了這樣的需求,所以寫了一個函數來比較更深的維度。

  

<?php
header("Content-type:text/html;charset=utf-8");
$json1='{ "filedir":"default", "pages" : [ { "name" : "首頁", "blocks":[ { "name":"頭部標題欄", "blocktype":"title_bar", "settings":{ "is_show":true, "bg_color":"#1eb7a4", "content_switch":true, "content":"", "bg_url":"", "color":"#fff", "border_bottom_color":"", "border_bottom_width":"0" } }, { "name":"頭部廣告圖", "blocktype":"ad_picture", "settings":{ "is_show":true, "bg_url":"" } }, { "name":"廣告", "blocktype":"ad", "settings":{ "is_show":true, "number":5, "show_type":"scroll" } }, { "name":"菜單", "blocktype":"menu", "settings":{ "is_show":true, "bg_color":"#fff", "color":"#1eb7a4" } }, { "name":"個人中心", "blocktype":"personal_center", "settings":{ "is_show":true, "bg_color":"#fff", "color":"#1eb7a4" } }, { "name":"上網按鈕", "blocktype":"online_button", "settings":{ "is_show":true, "offline_bg_url":"", "online_bg_url":"" } } ] }, { "name" : "登錄頁", "blocks":[ { "name":"頁面背景", "blocktype":"page_bg", "settings":{ "is_show":true, "bg_url":"", "bg_color":"" } }, { "name":"logo圖", "blocktype":"logo", "settings":{ "is_show":true, "bg_url":"" } }, { "name":"登錄模塊", "blocktype":"login", "settings":{ "is_show":true, "success_url":"" } } ] }, { "name" : "認證過程頁", "duration":"5", "blocks":[ { "name":"頁面背景", "blocktype":"page_bg", "settings":{ "is_show":false, "bg_url":"" } }, { "name":"登錄動畫", "blocktype":"login_animate", "settings":{ "is_show":true, "bg_url":"" } } ] }, { "name" : "登錄成功頁", "blocks":[ { "name":"頭部廣告圖", "blocktype":"ad_picture", "settings":{ "is_show":true, "bg_url":"" } }, { "name":"成功頁app", "blocktype":"apps", "settings":{ "is_show":true } }, { "name":"成功頁提示信息", "blocktype":"success_tips", "settings":{ "is_show":false, "color":"#fff", "content":"" } } ] }, { "name" : "廣告細覽頁", "blocks":[ { "name":"頭部標題欄", "blocktype":"title_bar", "settings":{ "is_show":true, "bg_color":"#1eb7a4", "content_switch":true, "content":"", "bg_url":"", "color":"#fff", "border_bottom_color":"", "border_bottom_width":"0" } } ] } ] }';

$json2='{ "filedir":"default", "pages" : [ { "name" : "首頁", "blocks":[ { "name":"頭部標題欄", "blocktype":"title_bar", "settings":{ "is_show":true, "bg_color":"#1eb7a4", "content_switch":true, "content":"", "bg_url":"", "color":"#fff", "border_bottom_color":"", "border_bottom_width":"0" } }, { "name":"頭部廣告圖", "blocktype":"ad_picture", "settings":{ "is_show":true, "bg_url":"" } }, { "name":"廣告", "blocktype":"ad", "settings":{ "is_show":true, "number":5, "show_type":"scroll" } }, { "name":"菜單", "blocktype":"menu", "settings":{ "is_show":true, "bg_color":"#fff", "color":"#1eb7a4" } }, { "name":"個人中心", "blocktype":"personal_center", "settings":{ "is_show":true, "bg_color":"#fff", "color":"#1eb7a4" } }, { "name":"上網按鈕", "blocktype":"online_button", "settings":{ "is_show":true, "offline_bg_url":"", "online_bg_url":"" } } ] }, { "name" : "登錄頁", "blocks":[ { "name":"頁面背景", "blocktype":"page_bg", "settings":{ "is_show":true, "bg_url":"", "bg_color":"" } }, { "name":"logo圖", "blocktype":"logo", "settings":{ "is_show":true, "bg_url":"" } }, { "name":"登錄模塊", "blocktype":"login", "settings":{ "is_show":true, "success_url":"" } } ] }, { "name" : "認證過程頁", "duration":"5", "blocks":[ { "name":"頁面背景", "blocktype":"page_bg", "settings":{ "is_show":false, "bg_url":"" } }, { "name":"登錄動畫", "blocktype":"login_animate", "settings":{ "is_show":true, "bg_url":"" } } ] }, { "name" : "登錄成功頁", "blocks":[ { "name":"頭部廣告圖", "blocktype":"ad_picture", "settings":{ "is_show":true, "bg_url":"" } }, { "name":"成功頁app", "blocktype":"apps", "settings":{ "is_show":true } }, { "name":"成功頁提示信息", "blocktype":"success_tips", "settings":{ "is_show":false, "color":"#fff", "content":"" } } ] }, { "name" : "廣告細覽頁", "blocks":[ { "name":"頭部標題欄", "blocktype":"title_bar", "settings":{ "is_show":true, "bg_color":"#1eb7a4", "content_switch":true, "content":"", "bg_url":"", "color":"#fff", "border_bottom_color":"", "border_bottom_width":"0" } } ] } ] }';

$array1=json_decode($json1,true);
$array2=json_decode($json2,true);


function array_recursive_diff($array1, $array2) {
    $result = array();
    foreach ($array1 as $key1 => $value1) {
        if (array_key_exists($key1, $array2)) {
            if (is_array($value1)) {
                $diff = array_recursive_diff($value1, $array2[$key1]);
                if (count($diff)) {
                    $result[$key1] = $diff;
                }
            } else {
                if ($value1 != $array2[$key1]) {
                    $result[$key1] = $value1;
                }
            }
        } else {
            $result[$key1] = $value1;
        }
    }

    return $result;
}

$result=array_recursive_diff($array1, $array2);
echo '<pre>';
var_dump($result);

if(empty($result)){
    echo '完全相同';
}else{
    echo '完全不相同';
}

 

  

  

  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved