phpの配列の基本的なことなのですが、


$arr = array(0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4);

上記配列のインデックス[1]と[3]に代入されている値をそれぞれ入れ変えるには
具体的にどのようにすれば良いでしょうか?


結果として下記配列へ
$arr = array(0 => 0, 1 => 3, 2 => 2, 3 => 1, 4 => 4);

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/08/20 10:33:24
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

ポイント100pt

一旦他の変数に入れるなど、場面に応じた方法はあるかと思いますが、

シンプルな方法として list を使った例を書いてみました。

$arr = array(0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4); # 変数準備
print_r($arr); # 初期状態の出力
list($arr[3], $arr[1]) = array($arr[1], $arr[3]); # 入れ替え
print_r($arr); # 結果状態の出力

PHP: list - Manual

id:akide

ご回答ありがとうございます。

2009/08/20 10:32:41
id:y-kawaz No.2

回答回数1422ベストアンサー獲得回数226

ポイント100pt

2通りの方法を紹介します。一般的なやり方と、PHP特有のTipsです。

<?php

//どの言語でも通用するアルゴリズム
$tmp = $arr[1];
$arr[1] = $arr[3];
$arr[3] = $tmp;

//1行で済ませるTips
list($arr[1], $arr[3]) = array($arr[3], $arr[1]);

?>

http://q.hatena.ne.jp/answer

id:akide

ご回答ありがとうございます。

2009/08/20 10:33:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません