📝

php 連想配列を同時に取得する

2022/12/03に公開

introduction

今回は2つの配列を、まるでpythonのzip関数のように配列取得してforeachで回したいって話。とくにそれ以外言うことはないんだけど、最近記事の質がどんどん落ちていってて、他人に見せても良いものなのかマジで疑問。まぁいいや。

自作で関数を定義する

やり方が最初わかんなかったので、自作した。コレのいいところは、いくつの連想配列であっても拡張ができるということ。

自作関数
function for2Dic($dic1,$dic2){
	$dic1len = count($dic1);
	$dic2len = count($dic2);
	$result = array();
	if($dic1len==$dic2len){
		for ($i=0;$i<$dic1len;$i++){
			$result[] = [];
		}
		$index = 0;
		foreach($dic1 as $key => $value){
			$result[$index][] = $key;
			$result[$index][] = $value;
			$index +=1;
		}
		$index = 0;
		foreach($dic2 as $key => $value){
			$result[$index][] = $key;
			$result[$index][] = $value;
			$index += 1;
		}
	}
	else{
		return null;
	}
	return $result;

実はarray_mapを用いると同じことができる

後々調べてみると、array_map関数を使えば全く同じことができる。phpのデフォルトの関数なだけあって、上の自作関数よりも多分セキュリティは高いだろうしこっちを使おう。ま、中身を理解できたこととか、拡張することができる点で上の関数は役に立つかもしれない。

array_map
array_map(null,$faqJas,$faqs);

Discussion