PHPです。array_column をオブジェクトの配列で使用することは可能ですか?
2023-10-31 17:13:06
質問
を渡すことは可能でしょうか?
array_column
にオブジェクトの配列を渡すことはできますか?
ArrayAccessインターフェイスを実装しましたが、効果がありません。
別のものを実装したほうがいいのでしょうか?
class Foo implements ArrayAccess {
public $Id, $Title;
public function offsetExists($offset)
{
return isset($this->{$offset});
}
public function offsetGet($offset)
{
return $this->{$offset};
}
public function offsetSet($offset, $value)
{
$this->{$offset} = $value;
}
public function offsetUnset($offset)
{
unset($this->{$offset});
}
}
$object = new \Foo();
$object->Id = 1;
$object->Title = 'Test';
$records = array(
$object,
array(
'Id' => 2,
'Title' => 'John'
)
);
var_dump(array_column($records, 'Title')); // array (size=1) 0 => string 'John' (length=4)
どのように解決するのですか?
PHP 5
array_column
は、オブジェクトの配列では動作しません。使用する
array_map
を使ってください。
$titles = array_map(function($e) {
return is_object($e) ? $e->Title : $e['Title'];
}, $records);
PHP 7
array_column()
この関数は、2次元の配列だけでなく、オブジェクトの配列もサポートするようになりました。 二次元配列もサポートするようになりました。パブリックプロパティのみが考慮され を利用するオブジェクトは
__get()
を使用するオブジェクトは、ダイナミックプロパティに関しても を実装しなければなりません。__isset()
.
参照 https://github.com/php/php-src/blob/PHP-7.0.0/UPGRADING#L629 - おかげさまで ベル に感謝します。
関連
-
[解決済み] $wpdb->update または $wpdb->insert を実行すると、引用符の前にスラッシュが追加される
-
[解決済み】mysqli::query(): mysqli をフェッチできない
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み] PHPでユーザー入力をサニタイズするにはどうすればよいですか?
-
[解決済み] PHPを使って現在の年を取得するにはどうすればよいですか?
-
[解決済み] PHP 配列をキーではなく値で削除する
-
[解決済み] PHP オブジェクトを連想配列に変換する
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】接続の取得に失敗しました: php_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み】PHPで空の値からデフォルトオブジェクトを作成する?
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】ディレクトリ内のファイル数を数える PHP
-
[解決済み] $wpdb->update または $wpdb->insert を実行すると、引用符の前にスラッシュが追加される
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み] PHP 未定義関数への呼び出し
-
[解決済み] PHP - オブジェクトの配列からプロパティを抽出する