参照変数の親配列を取得
データの多次元配列があって、値に応じて動的に関数を選択し
中身の値を引数で渡すみたいな感じの処理をしています
ほとんどの処理は中身の値だけあれば事足りるのですが
稀にキー値を使いたい処理がでてきます
本当に稀なので引数にキー値も渡すようにするのは
無駄が多くなるように思うので避けたく
できれば参照変数で渡される値から
親配列でのキー値を取得したいと思っています
$arr2A=array('a'=>array('fnc'=>'A','あ','い','う'),'b'=>array('fnc'=>'B','か','き','く'),'c'=>array('fnc'=>'C','さ','し','す'));
$arr2B=array('a'=>array('fnc'=>'A','あ','い','う'),'b'=>array('fnc'=>'B','か','き','く'),'c'=>array('fnc'=>'C','さ','し','す'));
$arr2C=array('a'=>array('fnc'=>'A','あ','い','う'),'b'=>array('fnc'=>'B','か','き','く'),'c'=>array('fnc'=>'C','さ','し','す'));
foreach($arr2A as $key=>$val){
$fncs[$val['fnc']]($val);
}
foreach($arr2B as $key=>$val){
$fncs[$val['fnc']]($val);
}
foreach($arr2C as $key=>$val){
$fncs[$val['fnc']]($val);
}
$fncs=array(
A=>function(&$arr){
},
B=>function(&$arr){
},
C=>function(&$arr){
//ここで稀にキー値も使いたい
});
実際のコードはかなり長いので載せられませんが
要約すると上記のような感じの処理です
まずどのデータ配列の集合から渡されたのかが明確ではありませんので
indexOfなどでキー値を得るのというのが難しいです
現在は、その処理が必要なデータ行について処理前に
中身にキー値をあらかじめ入れてしまう
というように対応しているので、一応解決はしているのですが
もし参照変数から親配列を得る方法が
あればと思い質問させていただきました
”そんなものはない”という回答も
あきらめつくのでお願いします
お礼
お忙しい中回答してくれてありがとうござます。 お礼が遅れました。 そういうこともできるんですね。 お勉強になりました。setlocalする条件でもいい方法が ありましたらご教授願います。 本当にありがとうございます。
補足
ありがとうございました。 結局setlocalを消すことにしました。