算法题。该怎么解决
算法题。
对象原有属性值全部是大写,需求是将对象的属性值全部转化成小写么。 <br />通常思路是 对象转化成数组(遍历转化成小写)再转化成对象 这样的思路很繁琐递归数据源且效率低<br />求高效思路或方法<br />stdClass Object<br />(<br /> [INFO] => stdClass Object<br /> (<br /> [A] => 1<br /> [B] => 2<br /> [C] => 3<br /> [C] => 4<br /> [D] => stdClass Object<br /> (<br /> [AA] => 11<br /> [BB] => 22<br /> [CC] => 33<br /> [CC] => 44<br /> )<br /><br /> )<br /><br />)<br />
------解决方案--------------------
对象不可能出现同名属性,请调整一下
------解决方案--------------------
转化为数组了过后可以用spl中的数组迭代器来遍历,不知道速度会不会快一点
------解决方案--------------------
不是很明白为什么要有这样的需求,可以这样写
$s = '{"A":1,"B":2,"C":3,"D":{"AA":11,"BB":22,"CC":33}}';<br />$o = json_decode($s); //模拟一个对象<br /><br />$t = serialize($o);<br />$t = preg_replace_callback('/("[A-Z]+")(;.+?;)/', function($r) { return strtolower($r[1]) . $r[2]; }, $t);<br />$o = unserialize($t);<br /><br />print_r($o);
stdClass Object<br />(<br /> [a] => 1<br /> [b] => 2<br /> [c] => 3<br /> [d] => stdClass Object<br /> (<br /> [aa] => 11<br /> [bb] => 22<br /> [cc] => 33<br /> )<br />)<br />
如果真是 json 则可写作
$s = '{"A":1,"B":2,"C":3,"D":{"AA":11,"BB":22,"CC":33}}';<br />$s = preg_replace_callback('/"[A-Z]+":/', function($r) { return strtolower($r[0]); }, $s);<br />print_r(json_decode($s));<br />
stdClass Object<br />(<br /> [a] => 1<br /> [b] => 2<br /> [c] => 3<br /> [d] => stdClass Object<br /> (<br /> [aa] => 11<br /> [bb] => 22<br /> [cc] => 33<br /> )<br /><br />)<br />
------解决方案--------------------
1.先json_encode把对象转字符串
2.使用preg_replace_callback 调用 strtolower把 "*": 转为小写,相当于把遍历改成正则替换。
3.json_decode 把字符串转为对象。
<br /><?php<br />$s = '{"A":1,"B":2,"C":3,"D":{"AA":11,"BB":22,"CC":33}}';<br />$obj = json_decode($s);<br /><br />print_r($obj);<br /><br />$str = json_encode($obj);<br />$str = preg_replace_callback('/"(.*?)":/', 'tolower', $str);<br />$obj = json_decode($str);<br /><br />print_r($obj);<br /><br />function tolower($matches){<br /> return '"'.strtolower($matches[1]).'":';<br />}<br />?><br />

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

螢幕亮度是使用現代計算設備不可或缺的一部分,尤其是當您長時間注視螢幕時。它可以幫助您減輕眼睛疲勞,提高易讀性,並輕鬆有效地查看內容。但是,根據您的設置,有時很難管理亮度,尤其是在具有新UI更改的Windows11上。如果您在調整亮度時遇到問題,以下是在Windows11上管理亮度的所有方法。如何在Windows11上變更亮度[10種方式解釋]單一顯示器使用者可以使用下列方法在Windows11上調整亮度。這包括使用單一顯示器的桌上型電腦系統以及筆記型電腦。讓我們開始吧。方法1:使用操作中心操作中心是訪問

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

在iOS17中,Apple為其行動作業系統引入了幾項新的隱私和安全功能,其中之一是能夠要求對Safari中的隱私瀏覽標籤進行二次身份驗證。以下是它的工作原理以及如何將其關閉。在執行iOS17或iPadOS17的iPhone或iPad上,如果您在Safari瀏覽器中開啟了任何「無痕瀏覽」標籤頁,然後退出會話或App,Apple的瀏覽器現在需要面容ID/觸控ID認證或密碼才能再次訪問它們。換句話說,如果有人在解鎖您的iPhone或iPad時拿到了它,他們仍然無法在不知道您的密碼的情況下查看您的隱私

著名的激活腳本MAS2.2版本重新支援數位激活,方法源自@asdcorp及團隊,MAS作者稱之為HWID2。 https://github.com/massgravel/Microsoft-Activation-Scripts下載gatherosstate.exe(非原版,已改造),帶參數運行它,生成門票GenuineTicket.xml。先看一下原先的方法:gatherosstate.exePfn=xxxxxxx;DownlevelGenuineState=1再對比一下最新方法:gatheros

golangWebSocket與JSON的結合:實現資料傳輸和解析在現代的Web開發中,即時資料傳輸變得越來越重要。 WebSocket是一種用於實現雙向通訊的協議,與傳統的HTTP請求-回應模型不同,WebSocket允許伺服器向客戶端主動推送資料。而JSON(JavaScriptObjectNotation)是一種用於資料交換的輕量級格式,它簡潔易讀

PHP數組轉JSON的效能最佳化方法包括:使用JSON擴充和json_encode()函數;新增JSON_UNESCAPED_UNICODE選項以避免字元轉義;使用緩衝區提高循環編碼效能;快取JSON編碼結果;考慮使用第三方JSON編碼庫。

MySQL5.7和MySQL8.0是兩個不同的MySQL資料庫版本,它們之間有以下一些主要差異:效能改進:MySQL8.0相對於MySQL5.7有一些效能改進。其中包括更好的查詢優化器、更有效率的查詢執行計劃產生、更好的索引演算法和平行查詢等。這些改進可以提高查詢效能和整體系統效能。 JSON支援:MySQL8.0引入了對JSON資料類型的原生支持,包括JSON資料的儲存、查詢和索引。這使得在MySQL中處理和操作JSON資料變得更加方便和有效率。事務特性:MySQL8.0引進了一些新的事務特性,如原子

使用golang中的json.MarshalIndent函數將結構體轉換為格式化的JSON字串在使用Golang編寫程式時,我們經常需要將結構體轉換為JSON字串,在這個過程中,json.MarshalIndent函數可以幫助我們實現格式化的輸出。下面我們將詳細介紹如何使用這個函數,並提供具體的程式碼範例。首先,讓我們建立一個包含一些資料的結構體。以下是示
