何度も同じ系統の質問をしてお邪魔してます。
array_spliceが期待の動作にならず、試行錯誤です。
$arr= array("0","1","2","3","4"); echo('<pre>'); var_dump($arr); echo('</pre>'); /* array(5) { [0]=> string(1) "0" [1]=> string(1) "1" [2]=> string(1) "2" [3]=> string(1) "3" [4]=> string(1) "4" } */ array_splice($arr, 2, 0, array("4"=>"4")); echo('<pre>'); var_dump($arr); echo('</pre>');
ここで期待する結果:
array(5) { [0]=> string(1) "0" [1]=> string(1) "1" [4]=> string(1) "4" [2]=> string(1) "2" [3]=> string(1) "3" }
array("4"=>"4")の通り、添字は[4]で挿入し、
また[4]は既に存在しており重複して存在できないため、元のデータは消され
今回挿入したデータのみ残ることを期待しています。
が、現実。
/* array(6) { [0]=> string(1) "0" [1]=> string(1) "1" [2]=> string(1) "4" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" } */
[4]で挿入したはずが
[2]=> string(1) "4"
と、添字が順番にフリ直され、添字[4]をキープしてくれず
元 [4]=>string(1) "4"も[5]を振り直されて存在。
この関数でなんとか出来れば良いのですが、
1.配列に対して、希望の位置に、希望の添字で挿入すること
2.同時に既存の同じ添字が消えること
の2点をなんとかできればと思っています。
ご教授のほど、よろしくお願いいたします。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。