配列でprint_r()
を実行すると、次の結果が得られます。
Array (
[0] =>
stdClass Object
(
[id] => 25
[time] => 2014-01-16 16:35:17
[fname] => 4
[text] => 5
[url] => 6
)
)
配列内の特定の値にアクセスするにはどうすればよいですか?次のコードは、stdClassオブジェクトが原因で機能しません
echo $array['id'];
配列メンバーにアクセスするには、$array['KEY'];
を使用します
オブジェクトメンバーにアクセスするには、$obj->KEY;
を使用します
オブジェクトの配列内のオブジェクトメンバーにアクセスするには:$array[0]
//配列の最初のオブジェクトを取得します$array[0]->KEY
//その後、そのキーにアクセスします
次のようにオブジェクトの配列をループすることもできます。
foreach ($arrayOfObjs as $key => $object) {
echo $object->object_property;
}
配列は物の集まりと考えてください。それはあなたがあなたの物を保管し、それらにユニークなID(キー)を与え、そのキーを使用してそれらにアクセスする(またはバッグから物を取り出す)ことができるバッグです。ここではシンプルにしたいのですが、このバッグには他のバッグも入れることができます:)
配列には、「key
」と「value
」のペアが含まれます。配列メンバーにキーを提供するかどうかはオプションです。この場合、0から始まり、メンバーが追加されるたびに1ずつ増え続ける数値キーが自動的に割り当てられます。配列から「値」を取得するには、「key
」を使用します。
したがって、次の方法で配列を定義できます(キーに関して)。
$colorPallete = ['red', 'blue', 'green'];
上記の配列には、自動的に数値キーが割り当てられます。したがって、赤に割り当てられたキーは0、青は1などになります。
$colorPallete[0]; // will output 'red'
$colorPallete[1]; // will output 'blue'
$colorPallete[2]; // will output 'green'
$colorPallete = ['love' => 'red', 'trust' => 'blue', 'envy' => 'green']; // we expliicitely define the keys ourself.
$colorPallete['love']; // will output 'red'
$colorPallete['trust']; // will output 'blue'
$colorPallete['envy']; // will output 'green'
これを試して、うまく動作します-
$array = json_decode(json_encode($array), true);
これを試して:
echo $array[0]->id;
配列があります。 PHP配列は基本的に「物事のリスト」です。配列には1つのことがあります。そのことは標準クラスです。配列から削除する必要があります
$object = array_shift($array);
var_dump($object->id);
または、配列内のそのインデックスによって物を参照します。
var_dump( $array[0]->id );
または、配列にいくつのものがあるかわからない場合は、配列をループします
foreach($array as $key=>$value)
{
var_dump($value->id);
var_dump($array[$key]->id);
}
このようなものはどうですか。
function objectToArray( $object ){
if( !is_object( $object ) && !is_array( $object ) ){
return $object;
}
if( is_object( $object ) ){
$object = get_object_vars( $object );
}
return array_map( 'objectToArray', $object );
}
オブジェクトでこの関数を呼び出します
$array = objectToArray( $yourObject );