質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

2回答

2042閲覧

連想配列の同じ要素番号の値を「/」区切りで結合させる

test0001

総合スコア224

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2016/03/21 01:30

以下の連想配列があります。

php

1<?php 2$arr = array( 3 'A' => array( 4 1 => 'おはよう', 5 2 => 'こんにちは', 6 3 => 'こんばんは', 7 ), 8 'B' => array( 9 1 => 'おはようございます', 10 2 => 'こんにちは', 11 3 => 'こんばんは', 12 ), 13);

同じ要素番号の値を結合かつ「/」区切りでひとつの配列にしたいです。
同じ要素同士の値が重複している場合は1つのみ表示させたいです。

結果例

php

1/* 2[1] => 'おはよう/おはようございます', 3[2] => 'こんにちは', 4[3] => 'こんばんは' 5*/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

1,2,3は必ず存在するという前提であれば、こんなコードで出来ました。(やや非効率な気もするけど。)

lang

1<?php 2$arr = array( 3 'A' => array( 4 1 => 'おはよう', 5 2 => 'こんにちは', 6 3 => 'こんばんは', 7 ), 8 'B' => array( 9 1 => 'おはようございます', 10 2 => 'こんにちは', 11 3 => 'こんばんは', 12 ), 13); 14 15// 1,2,3ごとに配列として連結する 16$x = array(); 17foreach (array_keys($arr) as $key) { 18 for ($i = 1; $i <= 3; $i++) { 19 $x[$i][] = $arr[$key][$i]; 20 } 21} 22//1,2,3ごとに冗長性を排除して文字列連結する 23$y = array(); 24for ($i = 1; $i <= 3; $i++) { 25 $y[$i] = implode('/', array_unique($x[$i])); 26} 27 28print_r($y);
Array ( [1] => おはよう/おはようございます [2] => こんにちは [3] => こんばんは )

投稿2016/03/21 02:17

編集2016/03/21 02:18
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

array_columnarray_uniqueを使うことで簡単に実装出来ます。
※array_columnはPHP5.5.0以降でしか使えないので注意が必要です。

php

1<?php 2$arr = array( 3 'A' => array( 4 1 => 'aaa', 5 2 => 'bbb', 6 3 => 'ccc', 7 5 => 'hoge', 8 ), 9 'B' => array( 10 1 => 'abc', 11 2 => 'bbb', 12 4 => '123', 13 5 => '777', 14 ), 15); 16 17// 'A'だけ、'B'だけにしかないことを想定して結合する。 18// $columnList = array_keys($arr['A']); // 'A', 'B'に絶対同じ引数があるならこの1行でもOK 19$columnList = array(); 20foreach ($arr as $work) { 21 $columnList = array_merge($columnList, array_keys($work)); 22} 23 24// 指定のカラムだけを取り出して、'/'でつなげる 25$ret = array(); 26foreach ($columnList as $column) { 27 $tmp = array_column($arr, $column); 28 $ret[$column] = implode('/', array_unique($tmp)); 29} 30 31var_dump($ret);
array(5) { [1]=> string(7) "aaa/abc" [2]=> string(3) "bbb" [3]=> string(3) "ccc" [5]=> string(8) "hoge/777" [4]=> string(3) "123" }

投稿2016/03/22 06:02

rkojima

総合スコア421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問