PHPで

array(1,2,3,4)とarray(a,b,c)があります。
この二つを合成して、
array(a,b,c,4)というのを作りたいのですが、ループを使わずに行う方法はないでしょうか。

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

回答3件)

id:toohigh No.1

回答回数291ベストアンサー獲得回数37

ポイント27pt

$a=array(1,2,3,4);

$b=array("a","b","c");

$c=$b+$a;

var_dump($c);

・・・で、

array(4) {

[0]=>

string(1) "a"

[1]=>

string(1) "b"

[2]=>

string(1) "c"

[3]=>

int(4)

・・・という結果になります。

http://php.plus-server.net/language.operators.array.html

id:nikita_r

ほんとだ。ありがとうございます。

2006/10/19 12:31:10
id:m-nisi No.2

回答回数159ベストアンサー獲得回数3

ポイント27pt

array_spliceという関数を使えば出来ますよ。

http://www.7key.jp/program/php/array_splice.html

id:nikita_r

ありがとうございます。みてみます。

2006/10/19 12:31:27
id:bonlife No.3

回答回数421ベストアンサー獲得回数75

ポイント26pt

こんな感じでいかがでしょうか。

ループは使っていません。

<?php
error_reporting(E_ALL);
// 配列の定義
$array_add = array( "1", "2", "3", "4", "5", "6" ); // 足す配列
$array_org = array( "a", "b", "c" );                // 元となる配列
// 元配列の方が小さい場合の処理
if (count($array_org) < $array_add) {
    // 元配列にarray_sliceで取得した足す配列の余った部分をマージする
    $array_result = array_merge($array_org, array_slice($array_add,count($array_org)));
    print_r($array_result);
// 元配列が足す配列以上の大きさの場合の処理
} else {
    $array_result = $array_org;
    print_r($array_result);
}
?>

[参考URL]

id:nikita_r

ありがとうございます。

2006/10/19 12:32:49

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

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

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

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

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