teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

追記

2021/11/05 08:21

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -16,8 +16,8 @@
16
16
 
17
17
  ---
18
18
 
19
- 要素の中身の順番が保証されていないのであれば以下の様な感じ
19
+ 要素の中身の順番が保証されていないのであれば以下の様な感じ。追記欄でのやりとりが若干かみ合ってない気もするので、前述のやり方で要件を満たしているかもしれません。
20
- ただ、その場合は先にクラスを定義してオブジェクトにする等のアプローチの方がきれいだと思います。
20
+ * 先にクラスを定義して配列の要素をオブジェクトにする等のアプローチの方がきれいだと思います。
21
21
 
22
22
  ```
23
23
  <?php

4

追記

2021/11/05 08:21

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -12,4 +12,51 @@
12
12
  }else{
13
13
  echo "重複している";
14
14
  }
15
+ ```
16
+
17
+ ---
18
+
19
+ 要素の中身の順番が保証されていないのであれば以下の様な感じ
20
+ ただ、その場合は先にクラスを定義してオブジェクトにする等のアプローチの方がきれいだと思います。
21
+
22
+ ```
23
+ <?php
24
+ $shoppingBasket = [
25
+ ['fruit' => 'apple', 'price' =>100],
26
+ ['fruit' => 'orange', 'price' =>150],
27
+ ['fruit' => 'grape', 'price' =>300],
28
+ ['fruit' => 'apple', 'price' =>100],
29
+ ];
30
+ var_dump(isUnique($shoppingBasket));
31
+
32
+ $shoppingBasket2 = [
33
+ ['fruit' => 'apple', 'price' =>100],
34
+ ['fruit' => 'orange', 'price' =>150],
35
+ ['fruit' => 'grape', 'price' =>300],
36
+ ['price' =>100,'fruit' => 'apple'],
37
+ ];
38
+
39
+ var_dump(isUnique($shoppingBasket2));
40
+
41
+
42
+ $shoppingBasket3 = [
43
+ ['fruit' => 'apple', 'price' =>100],
44
+ ['fruit' => 'orange', 'price' =>150],
45
+ ['fruit' => 'grape', 'price' =>300],
46
+ ];
47
+
48
+ var_dump(isUnique($shoppingBasket3));
49
+
50
+
51
+ function isUnique($shoppingBasket){
52
+ foreach($shoppingBasket as $key => $val){
53
+ $tmp[$key] = serialize($val);
54
+ }
55
+ if(count($shoppingBasket) === count(array_unique($tmp, SORT_REGULAR))){
56
+ return true;
57
+ }else{
58
+ return false;
59
+ }
60
+ }
61
+
15
62
  ```

3

修正

2021/11/05 08:06

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -7,9 +7,7 @@
7
7
  ['fruit' => 'apple', 'price' =>100],
8
8
  ];
9
9
 
10
- $tmp = $shoppingBasket;
11
-
12
- if(count($shoppingBasket) === count(array_unique($tmp, SORT_REGULAR))){
10
+ if(count($shoppingBasket) === count(array_unique($shoppingBasket, SORT_REGULAR))){
13
11
  echo "重複していない";
14
12
  }else{
15
13
  echo "重複している";

2

追記

2021/11/05 07:55

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -7,7 +7,9 @@
7
7
  ['fruit' => 'apple', 'price' =>100],
8
8
  ];
9
9
 
10
+ $tmp = $shoppingBasket;
11
+
10
- if(count($shoppingBasket) === count(array_unique($shoppingBasket, SORT_REGULAR))){
12
+ if(count($shoppingBasket) === count(array_unique($tmp, SORT_REGULAR))){
11
13
  echo "重複していない";
12
14
  }else{
13
15
  echo "重複している";

1

追記

2021/11/05 07:53

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -11,4 +11,5 @@
11
11
  echo "重複していない";
12
12
  }else{
13
13
  echo "重複している";
14
- }
14
+ }
15
+ ```