dポイントプレゼントキャンペーン実施中!

現在配列の出力結果が↓なのですがこれを
array(2) {
[0]=>
string(6) "orange"
[1]=>
array(2) {
[0]=>
string(6) "apple"
[1]=>
array(2) {
[0]=>
string(6) "banana"
[1]=>
array(2) {
[0]=>
string(10) "Strawberry"
}
}
}
}



↓こっちのように変えたい場合の処理がどうしてもできません。

array(2) {
[0]=>
string(6) "orange"
[1]=>
string(6) "apple"
[2]=>
string(6) "banana"
[3]=>
string(10) "Strawberry"
}


今自分がやってる途中のものです↓

$fruit = array("orange", array("apple", array("banana", array("Strawberry"))));

function first_array($fruit)
{
foreach($fruit as $key => $value)
{
if(! is_array($value) === true )
{
echo $value;
}
else
{
first_array($value);
}
}
}

$new_array = first_array($fruit);


echo で orangeapplebananaStrawberry と表示はされるのですが、
配列に入れる方法がわかりません。

普通にこの部分を


if(! is_array($value) === true )
{
$array[] = $value;
}



とすると上書きされてしまっているのかな?
一個しかデータが残ってないのです・・・。

ご教授ください。

A 回答 (2件)

あらら。

申し訳ありません。
ちゃんと検証しないとダメですね。
下記ならいけると思います。

$fruit = array("orange", array("apple", array("banana", array("Strawberry"))));
$new_array = array();
first_array($fruit);
print_r($new_array);

function first_array($fruit) {
global $new_array;
foreach($fruit as $key => $value) {
if(! is_array($value) === true ) {
//echo $value;
array_push($new_array, $value);
} else {
first_array($value);
}
}
}
    • good
    • 0
この回答へのお礼

できました!!
なるほど、global を使うことで解決できるのですね。

勉強になりました、
どうも、ありがとうございました!!

お礼日時:2007/02/24 00:55

配列に追加するんですよね。


array_pushでいけると思いますよ。
array_push($fruit, $value);

参考URL:http://php.plus-server.net/function.array-push.h …
    • good
    • 0
この回答へのお礼

ありがとうございます。
そのことは私も考え以下のように試したのですがダメでした・・・。

$fruit = array("orange", array("apple", array("banana", array("Strawberry"))));

function first_array($fruit)
{
$new_array = array();

foreach($fruit as $value)
{
array_push($new_array, ( is_array($value) ? first_array($value) : $value ) );
}

return $new_array;
}

$new_array = first_array($fruit);

お礼日時:2007/02/23 17:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!