PHPで配列の使い方について質問です。


$array[] = test($test1,$test2);

と言うように、関数で処理した値を配列に代入しているのですが、
関数の戻り値が無い場合でも、配列に空白値が入ってしまいます。($array[0]=""になる)

if(isset($test1) && isset($test2)){
$array[] = test($test1,$test2);
}

という方法も考えたのですが、他に良い方法が無いかと思い、質問しました。

関数からの戻り値が無い場合、配列に空白が入らない方法はないでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2008/01/30 16:15:33
  • 終了:2008/01/30 17:54:03

回答(1件)

id:GEN111 No.1

GEN111回答回数472ベストアンサー獲得回数582008/01/30 16:32:07

ポイント60pt

http://q.hatena.ne.jp/1191413944:title

こちらの質問のようにするとか。


関数のほうが変えられないのなら、質問文にあるように先にはじくか、

後から array_pop とか unset で空要素を削除するかでしょう。

id:kt26

上記は過去に私が質問した内容ですが、当時教えていただいた方法では、

ソースが長くなってしまうので、別の方法はないかな?と思い、改めて質問しました。

(ですが、重複質問のような気もしますね…)

2008/01/30 16:49:38
  • id:tukihatu
    http://q.hatena.ne.jp/1191413944
    見た限り、前質問のMookさんの回答が一番スマートですね…自分もそうします。
    $array[] = の形だと、たとえ戻り値falseでも変数が生成されてしまうので、代入の前にブロックしかないかと。

    $array = array();
    function test($test1,$test2){
    global $array;
    $test = $test1 + $test2;//何かの条件文
    if($test <= 0){//条件がOKならば代入
    $array[] = $test;
    }
    }
  • id:kt26
    コメントありがとうございます。そうですね。前質問の方法で良いかもしれません。

    自分の中で考えを整理せずに質問してしまった感もあり、ご迷惑おかけしました。
    また提示いただいたソースも参考にします。

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません