データ構造に関して言えば、通信の配列があり、各communication_id 自体に id、score、content の 3 つの情報が含まれています。
コンマで区切られた ID のリストを取得するために、この配列を内破したいのですが、どうすればよいですか?
データ構造に関して言えば、通信の配列があり、各communication_id 自体に id、score、content の 3 つの情報が含まれています。
コンマで区切られた ID のリストを取得するために、この配列を内破したいのですが、どうすればよいですか?
PHP 5.5ではarray_column、これがクラス全体のarray_map使用法への便利なショートカットとして導入されています。ここでも適用できます。
$ids = array_column($communications, 'id');
$output = implode(',', $ids);
通信の配列からIDだけの配列を作成する必要があります。そうすれば、内包は取るに足らないものになるでしょう。
ヒント:そのための関数はですarray_map。
解決:
PHP 5.3を想定しています。そうでない場合は、コールバックを文字列として記述する必要があります。
$ids = array_map(function($item) { return $item['id']; }, $communications);
$output = implode(',', $ids);
http://snipplr.com/view.php?codeview&id=10187から:
class Format {
static public function arr_to_csv_line($arr) {
$line = array();
foreach ($arr as $v) {
$line[] = is_array($v) ? self::arr_to_csv_line($v) : '"' . str_replace('"', '""', $v) . '"';
}
return implode(",", $line);
}
static public function arr_to_csv($arr) {
$lines = array();
foreach ($arr as $v) {
$lines[] = self::arr_to_csv_line($v);
}
return implode("\n", $lines);
}
}
答えを探している他の人にとって、これは私ができることです:
$singleDimensionalArray = array();
foreach($array["1"]["2"]["3"][...] as $value) {
$singleDimensionalArray[] = $value;
}
これを3次元配列で使用しました。