多かれ少なかれそれを与えることができる機能すべての製品とそれだけでクラスの呼び出し
$phone_products = new Products();
echo ($phone_products->get_value($phoneType, $productsArr));
//output: key ->Apple value ->iPhone
NBなしから
$this->get_value($phoneType, $productsArr);
を呼び出すクラス内でこれを使用するには、アレイ
<?php
class Products
{
public function products_list()
{
$customerType = 'national';
$productType = 'phones';
$phoneType = 'Apple';
$productsArr[] = array(
'customerType' => 'national', 'productType' => array(
'phones' => array(
'Apple' => 'iPhone',
'Sony' => 'Xperia',
'Samsung' => 'Galaxy'
),
'cases' => array(
'leather' => 'black',
'plastic' => 'red',
),
),
'international' => array(
'phones' => array(
'BlackBerry' => 'One',
'Google' => 'Pixel',
'Samsung' => 'Note'
),
'cases' => array(
'leather' => 'blue',
'plastic' => 'green'
),
)
);
echo $this->get_value($phoneType, $productsArr) .'<br>';
echo $this->get_value($customerType, $productsArr) .'<br>';
echo $this->get_value($productType, $productsArr) .'<br>';
}
function get_value($product, array $products)
{
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($products), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $key => $value) {
if (is_string($value) && ($key == $product)) {
return 'key ->' . $key .' value ->'.$value;
}
}
return "";
}
}
$phone_products = new Products();
$phone_products->products_list();
からキーと値を返します:$ phoneType、$ productsArrは、他のメソッドで使用されているメソッド、または他のメソッドから渡されたメソッドを定義するか、クラス内のグローバル変数を定義します。
これは、メイン配列が何度も繰り返されるか、または1回だけですか? –
foreachを使用しようとしましたが動作しませんでしたか? – AllisonC
これは、メインアレイで複数回発生する可能性があります。 – ianhman