私はこのような配列を持っています:
array(4) {
[0] => "1. \Device\NPF_{1AAAAA99-7933-4CBC-AF26-2A1C1394BD94} (VirtualBox Host-Only Network)"
[1] => "2. \Device\NPF_{2BBBBB88-75BB-4CD0-970A-36430287C245} (Wireless Network Connection 6)"
[2] => "3. \Device\NPF_{3CCCCC77-8469-4445-A2ED-9C0FDDBA1C3D} (Wireless Network Connection 7)"
[3] => "4. \Device\NPF_{4EEEEE66-2C9D-4D47-B7EA-8A20A40A149B} (Local Area Connection)"
}
そして、次のような新しい連想配列に操作したいと思います。
array(4) {
["1"] => "VirtualBox Host-Only Network"
["2"] => "Wireless Network Connection 6"
["3"] => "Wireless Network Connection 7"
["4"] => "Local Area Connection"
}
foreachループを使用して元の配列を通過し、各反復でsubstr関数を使用して新しい配列キーの最初の文字を取得し、()パターン内の文を検索できることに気付きましたが、これを実装できませんでした。どんな提案でも大歓迎です!ありがとう!
PHPでは、ループなしでそれを行うことができます。
$data = [
"1. \Device\NPF_{1AAAAA99-7933-4CBC-AF26-2A1C1394BD94} (VirtualBox Host-Only Network)",
"2. \Device\NPF_{2BBBBB88-75BB-4CD0-970A-36430287C245} (Wireless Network Connection 6)",
"3. \Device\NPF_{3CCCCC77-8469-4445-A2ED-9C0FDDBA1C3D} (Wireless Network Connection 7)",
"4. \Device\NPF_{4EEEEE66-2C9D-4D47-B7EA-8A20A40A149B} (Local Area Connection)",
];
$names = array_combine(
preg_replace('~\D.*~', '', $data),
preg_replace('~.*\((.+?)\)$~', '$1', $data));
print_r($names);
結果:
Array
(
[1] => VirtualBox Host-Only Network
[2] => Wireless Network Connection 6
[3] => Wireless Network Connection 7
[4] => Local Area Connection
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加