2

このような配列を爆発させることは可能ですか?

$arr=array();
$arr[0]['id']='123';
$arr[0]['otherdatas']=
$arr[1]['id']='234';
$arr[1]['otherdatas']=
$arr[2]['id']='567';
echo "string: ".explode($arr[]['id'],',');

そしてこれで終わる?

string: 123,234,567

上記を実行すると、次のようになります。

致命的なエラー:8行目の/data/www/test.phpの読み取りに[]を使用できません

どうすれば次のようなことをせずにこれを行うことができますか...

function getIDs(){
    foreach($arr as $val){
        if($string){$string.=',';}
        $string.=$arr['id'];
    }
    return $string;
}

これについて行くためのより良い方法はありますか?

4

3 に答える 3

7

まず第一に、あなたはimplode文字列ではなく、文字列を試していますexplode次に、「すべてのサブ配列のすべてのキーを結合する」idという操作を表現するための構文ショートカットはありません。ただし、次のように非常に簡潔に行うことができます。

echo join(',', array_map(function ($i) { return $i['id']; }, $arr));
于 2012-05-01T06:08:08.517 に答える
-1

いいえ、無理です。

function myExplode ($data=array(),$row='id',$delimiter=','){
  $result='';
  foreach ($data as $item) $result.=($data[$row])?$delimiter.$data[$row]:'';
  return $result;
}
于 2012-05-01T06:15:10.697 に答える