前提・解決したいこと
配列の中から重複した値が有るかないか出力したい。
fruitとpriceで同じものがある場合に重複している、
どちらかが異なっていれば重複していないと判別したいです。
発生している問題
PHP
1<?php 2//下の配列から重複した値があるかないか出力したい 3$shoppingBasket = [ 4 ['fruit' => 'apple', 'price' =>100], 5 ['fruit' => 'orange', 'price' =>150], 6 ['fruit' => 'grape', 'price' =>300], 7 ['fruit' => 'apple', 'price' =>100], 8]; 9?> 10
試したこと
php
1<?php 2$shoppingBasket = [ 3 ['fruit' => 'apple', 'price' =>100], 4 ['fruit' => 'orange', 'price' =>150], 5 ['fruit' => 'grape', 'price' =>300], 6 ['fruit' => 'apple', 'price' =>100], 7]; 8 9function checkSimilar(array $shoppingBasket):string 10{ 11 $value_count = array_count_values($shoppingBasket); 12 $max = max($value_count); 13 if ($max == 1) { 14 return '重複していない'; 15 } else { 16 return '重複している'; 17 } 18} 19?>
他のQ&Aを検索してみて同じようなものがあったので使用してみたが
下のようなエラーコードが出現したため確認すると文字列と数字が混在しているためエラーが発生していると判明しました。
Warning: array_count_values(): Can only count STRING and INTEGER values!
しかしpriceの部分は数値のままで使用したいのですが他に何かいい方法はございませんでしょうか?
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー