$a_array=array(
array('a', 1, 'aです'),
array('b', 2, 'bです'),
array('c', 3, 'cです'),
);
上記の様な$a_arrayとします。
高校数学で下記の様なものがありますよね。
y=f(x)
f(x)=2x+1
ここでダイレクトに
$my_array=f('b'); //array('b', 2, 'bです')のこと
の様なことをする方法あるでしょうか?
私は方法が分からないので一々foreachで探して一致したものを選んでいます。
少し説明が足りない文章だと存じますが、伝わりましたでしょうか?
方法が有るか無いか、有るなら方法を御教示願えないでしょうか?
No.2ベストアンサー
- 回答日時:
#1です
ごめんなさい、大きく勘違いしていました
こういうことですよね?
(実際のところforeachで回しているのと変わりませんが・・・)
<?PHP
$a_array=array(
array('a', 1, 'aです'),
array('b', 2, 'bです'),
array('c', 3, 'cです'),
);
print_r(f($a_array,'b'));
function f($a_array,$val){
$my_array=array();
array_walk($a_array,function($item,$key) use(&$my_array,$val){if($item[0]===$val){$my_array=$item;}});
return $my_array;
}
?>
ただし問題があります。
$a_array=array(
array('a', 1, 'aです'),
array('b', 2, 'bです'),
array('c', 3, 'cです'),
array('b', 4, 'bでした'),
);
のようなときに、合致するデータが複数でてきます。
前述のものですと一番最後に合致したものが表示されます。
なにをどう返したいのかよく仕様を検討した方がよろしいかと
お返事が遅れまして申し訳ありません。
その様な方法があるのですね。ただforeachで回すのと同じと考えると回して得る方が簡単…。
php.netで配列関数を見てから質問させて頂いたのですが目的の関数が無かったのですよね。
と言うか関数以前に実装していて欲しかったというか…
ありがとうございました!
No.1
- 回答日時:
>f(x)
いわゆる数学でも関数ですよね?
こういう感じです
<?PHP
$my_array=f('b');
print_r($my_array);
$my_array=f('x');
print_r($my_array);
function f($var)
{
return array($var, 2, $var.'です');
}
?>
ご回答ありがとうございます。
$a_array=array(
array('a', 1, 'aです'),
array('b', 2, 'bです'),
array('c', 3, 'cです'),
);
ですが、もうちょっと複雑なんです。
>return array($var, 2, $var.'です');
ではうまくいかなくて、それぞれ$a_arrayの中身を参照する必要がある…
array('a', 1, 'aです'),
array('b', 4582, 'bですよー'),
array('c', 384678, 'cだぜい'),
みたいな感じです。それぞれの1個目の'a','b','c'は参照させるためのキーみたいな一意なものです。
方法無いですかね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) 型が一致しませんとエラー 6 2023/07/06 20:14
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- PHP ファイルの書き込みについて教えて下さい。 1 2023/03/20 12:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CArrayの要素としてCStringArra...
-
foreachの実行結果について
-
C言語の配列をPush(追加)する...
-
forとかで連番の変数を一気に格...
-
濁点のソート
-
配列参照で$my_var=f('b')みた...
-
array(array()); 多次元配列初...
-
一度に複数の値を取得できる乱...
-
特定の文からメールアドレスの...
-
配列の添え字が小数だとどうなる?
-
Smartyでインクリメント
-
String だと「 ByRef引数の型が...
-
多次元配列の中で条件に合う要...
-
PHP 多次元配列変数のデータ受...
-
PHPにてクラスを配列にすること...
-
While文を使って配列の中身を全...
-
PHP SimpleXml unsetについて
-
テキストデータから指定行の削除
-
foreachのなかで次のキーを参照...
-
別ファイルの構造体の値を読み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングのPythonのnoteb...
-
C言語の配列をPush(追加)する...
-
php で1から100までの素数の表...
-
STLのvectorで作った配列をメン...
-
スカラーのベクトル微分
-
行列
-
Perlで重複行を削除したい
-
配列の要素(value)に、変数を...
-
特定の文からメールアドレスの...
-
forとかで連番の変数を一気に格...
-
C言語 最大値と最小値を求めて...
-
CArrayの要素としてCStringArra...
-
PHPでユニークIDを作る
-
fgetc関数について
-
読み(あ行~わ行)ごとに分け...
-
Pager::factory()の使い方がわ...
-
verilogで、配列の一部をタスク...
-
mallocで char *型の配列を確...
-
c言語 単位行列
-
連想配列で値が空だったら、要...
おすすめ情報