の交換 - フィギュア、私はどのように行うことができるように私はこの次の配列を持つ配列のキーに
$arr = [ 'demo-key1' => 'demoval1', 'demo-key2' => 'demoval2' ];
を、私はし_置き換えたいですか?
私はできなかったため、これについてStack Overflowでいくつかの例を試しました。
本当にありがとうございました。ここで
の交換 - フィギュア、私はどのように行うことができるように私はこの次の配列を持つ配列のキーに
$arr = [ 'demo-key1' => 'demoval1', 'demo-key2' => 'demoval2' ];
を、私はし_置き換えたいですか?
私はできなかったため、これについてStack Overflowでいくつかの例を試しました。
本当にありがとうございました。ここで
はあなたを助けるかもしれない例です。
$arr=["demo0"=>"100","demo1"=>["demo_key1"=>"demoval1","demo_key2"=>"demoval2"],"demo3"=> "false"];
function changeKeys($array){
$newArray=[];
foreach($array as $key=>$val){
$newKey=str_replace('_','-',$key);
if(is_array($val)){
$newArray[$newKey]=changeKeys($val);
}else{
$newArray[$newKey]=$val;
}
}
return $newArray;
}
$arr=changeKeys($arr);
print_r($arr);
は出力:
$arr = array_combine(str_replace('_', '-', array_keys($arr)), array_values($arr));
:
Array
(
[demo0] => 100
[demo1] => Array
(
[demo-key1] => demoval1
[demo-key2] => demoval2
)
[demo3] => false
)
あなたは一つの式でarray_keys
、str_replace
、array_values
とarray_combine
を使用することができますインプレースリプレースメントが必要な場合あなたは配列への参照を持っているので、NT、多分、あなたはこのようにそれを行うことができます[?PHPで配列のキーの名前を変更する方法]の
function cleanArrayKeys(&$arr) { // use a reference
$arr = array_combine(str_replace('_', '-', array_keys($arr)), array_values($arr));
}
$arr = [ 'demo_key1' => 'demoval1', 'demo_key2' => 'demoval2' ];
cleanArrayKeys($arr);
print_r($arr); // same array reference now has the updated keys
は '[demo0] => 100 [DEMO1] =>アレイ ( [demo_key1] => demoval1 [demo_key2] => demoval2 ) [demo3] =>、ご回答いただきありがとうございます、それを試してみてくださいfalse'私はメイン配列で直接更新する必要があります。あなたはこれに関して何をお勧めしますか? – Jeremy
キーは更新できません。置き換えられません。キーを置き換える(つまり、削除+再作成する)と、配列全体を再割り当てすることもできます。しかし、あなたはすでに答えを受け入れているので、あなたは大丈夫だと思います。 – trincot
このような更新はできませんか?'foreach($ arr as&$ value){ if($ value == 1){ $ value = 2; } } – Jeremy
可能な複製(https://stackoverflow.com/questions/ 9605143/how-to-rename-array-keys-in-php)または[多次元配列のPHPリネーム・アレイ・キー](https://stackoverflow.com/questions/2212948/php-rename-array-keys-in-multidimensional -array)OR [...](https://stackoverflow.com/search?q=%5Bphp%5D+rename+array+key) – Sean
@Sean何も機能しません。 – Jeremy
あなたが試したことを示してください。私たちはあなたのために仕事をするのではなく、あなたを導くのを助けるためにここにいます。 – Sean