回答編集履歴

5

追記

2021/11/05 08:21

投稿

tanat
tanat

スコア18727

test CHANGED
@@ -34,9 +34,9 @@
34
34
 
35
35
 
36
36
 
37
- 要素の中身の順番が保証されていないのであれば以下の様な感じ
37
+ 要素の中身の順番が保証されていないのであれば以下の様な感じ。追記欄でのやりとりが若干かみ合ってない気もするので、前述のやり方で要件を満たしているかもしれません。
38
38
 
39
- ただ、その場合は先にクラスを定義してオブジェクトにする等のアプローチの方がきれいだと思います。
39
+ * 先にクラスを定義して配列の要素をオブジェクトにする等のアプローチの方がきれいだと思います。
40
40
 
41
41
 
42
42
 

4

追記

2021/11/05 08:21

投稿

tanat
tanat

スコア18727

test CHANGED
@@ -27,3 +27,97 @@
27
27
  }
28
28
 
29
29
  ```
30
+
31
+
32
+
33
+ ---
34
+
35
+
36
+
37
+ 要素の中身の順番が保証されていないのであれば以下の様な感じ
38
+
39
+ ただ、その場合は先にクラスを定義してオブジェクトにする等のアプローチの方がきれいだと思います。
40
+
41
+
42
+
43
+ ```
44
+
45
+ <?php
46
+
47
+ $shoppingBasket = [
48
+
49
+ ['fruit' => 'apple', 'price' =>100],
50
+
51
+ ['fruit' => 'orange', 'price' =>150],
52
+
53
+ ['fruit' => 'grape', 'price' =>300],
54
+
55
+ ['fruit' => 'apple', 'price' =>100],
56
+
57
+ ];
58
+
59
+ var_dump(isUnique($shoppingBasket));
60
+
61
+
62
+
63
+ $shoppingBasket2 = [
64
+
65
+ ['fruit' => 'apple', 'price' =>100],
66
+
67
+ ['fruit' => 'orange', 'price' =>150],
68
+
69
+ ['fruit' => 'grape', 'price' =>300],
70
+
71
+ ['price' =>100,'fruit' => 'apple'],
72
+
73
+ ];
74
+
75
+
76
+
77
+ var_dump(isUnique($shoppingBasket2));
78
+
79
+
80
+
81
+
82
+
83
+ $shoppingBasket3 = [
84
+
85
+ ['fruit' => 'apple', 'price' =>100],
86
+
87
+ ['fruit' => 'orange', 'price' =>150],
88
+
89
+ ['fruit' => 'grape', 'price' =>300],
90
+
91
+ ];
92
+
93
+
94
+
95
+ var_dump(isUnique($shoppingBasket3));
96
+
97
+
98
+
99
+
100
+
101
+ function isUnique($shoppingBasket){
102
+
103
+ foreach($shoppingBasket as $key => $val){
104
+
105
+ $tmp[$key] = serialize($val);
106
+
107
+ }
108
+
109
+ if(count($shoppingBasket) === count(array_unique($tmp, SORT_REGULAR))){
110
+
111
+ return true;
112
+
113
+ }else{
114
+
115
+ return false;
116
+
117
+ }
118
+
119
+ }
120
+
121
+
122
+
123
+ ```

3

修正

2021/11/05 08:06

投稿

tanat
tanat

スコア18727

test CHANGED
@@ -16,11 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- $tmp = $shoppingBasket;
20
-
21
-
22
-
23
- if(count($shoppingBasket) === count(array_unique($tmp, SORT_REGULAR))){
19
+ if(count($shoppingBasket) === count(array_unique($shoppingBasket, SORT_REGULAR))){
24
20
 
25
21
  echo "重複していない";
26
22
 

2

追記

2021/11/05 07:55

投稿

tanat
tanat

スコア18727

test CHANGED
@@ -16,7 +16,11 @@
16
16
 
17
17
 
18
18
 
19
+ $tmp = $shoppingBasket;
20
+
21
+
22
+
19
- if(count($shoppingBasket) === count(array_unique($shoppingBasket, SORT_REGULAR))){
23
+ if(count($shoppingBasket) === count(array_unique($tmp, SORT_REGULAR))){
20
24
 
21
25
  echo "重複していない";
22
26
 

1

追記

2021/11/05 07:53

投稿

tanat
tanat

スコア18727

test CHANGED
@@ -25,3 +25,5 @@
25
25
  echo "重複している";
26
26
 
27
27
  }
28
+
29
+ ```