我正在使用Cassandra並將一些字節表示法保存爲ID。一切工作正常,但數據(id)不適合輸出。將函數應用於每個陣列密鑰
$users = $db->get('1');
echo '<pre>';
print_r($users);
die();
輸出
Array
(
[��� X��W��c_ ] => Array
(
[id] => ��� X��W��c_
[name] => steve
[surname] => moss
)
[�*B�X��y�~p��~] => Array
(
[id] => �*B�X��y�~p��~
[name] => john
[surname] => doe
)
)
正如你所看到的ID都是一些奇怪的字符,這是因爲他們在數據庫字節表示。他們看起來像\xf5*B\xa0X\x00\x11\xe1\x99y\xbf~p\xbc\xd1~
。
在PHPCASSA有功能CassandraUtil::import();
我可以傳遞這些字節,它將返回GUID。它工作正常,但我想我的數組自動從字節轉換爲GUID。
我發現的唯一選擇是遍歷數組中的每個項目併爲其分配新值。不知何故,我認爲這不是最好的方法。有沒有其他方法可以做到這一點?
TL; DR 有像上面這樣的字節的數組,需要對數組鍵和ID使用CassandraUtil::import();
來獲得可讀的ID。什麼是最有效的方式。
是的,我試過了,但它不起作用,因爲不是所有的元素都像ID一樣。使用'嘗試'是否是一個好主意,所以它只會對他可以改變的元素這樣做? – sed 2012-02-15 18:32:56
'array_walk',應該隻影響頂層數組。對於內部數組,我們可能必須執行不同的功能/採取不同的過程。要更新我的答案。 @Qmal,更新。 – 2012-02-15 18:35:46
就嘗試而言,它是否會拋出異常?如果是,請繼續嘗試將其包裝起來,並在需要時捕捉/處理錯誤。 – 2012-02-15 18:42:18