過去にデータベースを使用しただけなので、PHP配列を実際に使用したことは一度もなかったので、視野を少し広げています。基本的に、各要素に「名前」とその他の値を持つ単純なネストされた配列があります。オブジェクトの一部である配列を検索しようとしています。ここで以前のいくつかの質問に目を通しましたが、うまくいきませんでしたが、他のケースではオブジェクトが関与していませんでした。「針/干し草の山」タイプの例を使用しようとしましたが、まだ機能していません。
したがって、私の People クラスには、とりわけ次のものがあります。
public $peopleArray; // this is the array and will be protected once working
// and this is the example search function im trying to modify
public function findPerson($needle, $haystack)
{
foreach($haystack as $key=>$value)
{
if(is_array($value) && array_search($needle, $value) !== false)
{
return $key;
}
}
return 'false';
}
そして、これを呼び出すために、私は現在持っています:
$searchResult = $People->findPerson('Bob',$people->peopleArray,'name');
$needle と $value を混同しているだけなのかどうかはわかりません。検索関数で名前の値を渡す必要があるため、関数の引数に $value を指定しましたが、それでも何も返されませんでした。また、$key が定義されていないため、'$key=>$value' を変更する必要があるかどうかについても 100% ではありません。
助けてくれてありがとう。
追加 - 配列の print_r:
Array ( [0] => Person Object ( [id:protected] => 1 [name] => Bob [gender] => m )
[1] => Person Object ( [id:protected] => 2 [name] => Denise [gender] => f )
[2] => Person Object ( [id:protected] => 3 [name] => Madge [gender] => f ) )