2017-01-19 6 views
-2

私はほぼ完成したGoogle認定のショップデータを提供するためのコードを書いています。私は船と配達の日付を供給する必要があります。私はこの情報を製品レベルで提供するコードを書いています。しかし、注文に複数の商品がある場合は、最大の出荷日を選択する必要があります。プロダクト変数を収集し、PHPで最大のものを見つけよう

たとえば、 には2つの製品があります。 $ ship_date = 2のProductaと$ ship_date = 5のporductb

すべての$ ship_dates(2と5)を収集し、最高のもの(5)を返す必要があります。 私の質問は、どのようにすべての$ ship_datesを正しく収集するためにphpを書くのですか?配列を作成する必要がありますか?

+0

。しかし、あなたが記述した内容に基づいて、PHP関数['array_map()'](http://php.net/manual/en/function.array-map.php)と['max()']の詳細を読んでください(http://php.net/manual/en/function.max.php)。 – axiac

+0

具体的な構文よりもアプローチに関することです。私はループ内で製品情報の全リストを取得しています。 $ line_items = $ order-> get_items(); foreach($ line_itemsを$ item){ $ product = $ order-> get_product_from_item($ item); $ prod_name = $ item ['name']; – Jolo

+0

すでにリストにループがある場合は、ループ内のmaxを計算し、最大値に達する項目も覚えておくことができます。 – axiac

答えて

0

すべての必要な変数を配列に入れてから、maxを使用します。

$ship_date1 = 2; 
$ship_date2 = 5; 
$shipDates = [$ship_date1, $ship_date2]; 
// other dates as needed 

// OR, a much cleaner solution, append to the array 
$shipDates = []; 
$shipDates[] = 2; 
$shipDates[] = 5; 

//No matter how you fill up the array, this is how you get its maximum value 
$maxShipDate = max($shipDates); 

maxは、実際に(例えば。max($ship_date1, $ship_date2);)の代わりに、個々の変数を受け入れますが、配列のソリューションは、保守が容易です。

+0

各注文にどれくらいの出荷日があるかわからないので、1から無制限に出荷日を自動的に収集する方法が必要です。第2に、各製品の出荷日がループで収集されるため、それらすべての変数は$ ship_dateです。私は何かを考えていた foreach($ ship_date as $ key => $ value){ $ string = $ value。 '、'; } しかし、私はそれが正しいとは確信していません。 – Jolo

0

私のforeachプロダクトループの前にOK、これを追加しました。 $ deliverydatearray = array(); 私は$ deliverydatearrayという新しい(空の)配列を作成します

私のforeachプロダクトループの中で私はこれを追加しました。 $ deliverydatearray [] = $ delivery_datep; 私の製品に特有の納品日($ delivery_datep)を配列に追加します。

foreachプロダクトループが閉じられた後、私の配列内の変数にアクセスできます。例えば、配列の内容を表示するだけの場合は、次のようにします。 print_r($ deliverydatearray); これは次のようになります。限り、あなたは、あなたが有益な答えを得ることはありませんコードを提供しないよう アレイ ( [0] => 2017年1月28日 [1] => 2017年1月23日 )

関連する問題