Hướng dẫn search in json file php - tìm kiếm trong tệp json php

Đây là tệp JSON của tôi có chứa các mục của tôi. Tôi muốn tìm kiếm tên vật phẩm và trả về ID.

Show

CODE:

 $jsonitem = file_get_contents("data.json");

 $objitems = json_decode($jsonitem);


 $findById = function($id) use ($objname) {
  foreach (json_decode($objname) as $friend) {
    if ($friend->id === $id) return $friend->name;
  }
  return;
};

echo $findById('6') ?: 'No record found.';

Tệp JSON:

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]

Hỏi ngày 24 tháng 1 năm 2016 lúc 21:29Jan 24, 2016 at 21:29

Hướng dẫn search in json file php - tìm kiếm trong tệp json php

0

Logic của bạn là chính xác, nhưng bạn có một vài lỗi trong mã của mình:

  • Bạn đang tham khảo
    $findById = function($id) use ($objitems) {
        foreach ($objitems as $friend) {
            if ($friend->id == $id) return $friend->name;
         }
    
        return false;
    };
    
    9, chưa được đặt
  • Bạn đang giải mã dữ liệu hai lần
  • Như @mikey đã chỉ ra, JSON của bạn không hợp lệ vì dấu phẩy trên các dòng
    composer require nahid/jsonq
    
    0.

Try:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};

Đã trả lời ngày 24 tháng 1 năm 2016 lúc 21:40Jan 24, 2016 at 21:40

Mathew Tinsleymathew TinsleyMathew Tinsley

6.6252 Huy hiệu vàng28 Huy hiệu bạc37 Huy hiệu đồng2 gold badges28 silver badges37 bronze badges

3

php-jsonq

`Data` - có thể là đường dẫn tệp JSON hoặc chuỗi JSON hoặc đối tượng JSON. Nếu không có dữ liệu nào được truyền trong tham số `data`, phiên bản đối tượng` jsonq` sẽ được đặt lại về dữ liệu được khởi tạo trước đó. is a simple, elegant PHP package to Query over any type of JSON Data. It'll make your life easier by giving the flavour of an ORM-like query on your JSON.

Tại bất kỳ điểm nào, bạn có thể muốn đặt lại thể hiện đối tượng thành một tập dữ liệu hoàn toàn khác và sau đó truy vấn nó. Bạn có thể sử dụng phương pháp này trong trường hợp đó.

Xem một ví dụ chi tiết ở đây.

Nó sẽ trả về một bản sao hoàn chỉnh của thể hiện đối tượng.

Lỗi và vấn đề

Nếu bạn gặp bất kỳ lỗi hoặc vấn đề nào, hãy thoải mái mở một vấn đề tại GitHub.

Ngoài ra, bạn có thể gửi cho tôi một email cho những cái ôm hoặc lỗi.

use Nahid/JsonQ/Jsonq;
$jsonq = new Jsonq('data.json');

Nền tảng khác

$json->json('{"id": 1, "name": "Nahid"}');

Gói này cũng có hỗ trợ ngôn ngữ khác nhau.

$json->collect(['id'=>1, 'name'=>'Nahid']);

JavaScript Jsonq được phát triển bởi Ahmed Shamimfind, where, orWhere, whereIn, whereStartsWith, whereEndsWith, whereContains and so on. Also you can aggregate your data after query using sum, count, groupBy, max, min etc.

Python Jsonq được phát triển bởi Shaon Shaonty

//data.json
{
	"name": "products",
	"description": "Features product list",
	"vendor":{
		"name": "Computer Source BD",
		"email": "",
		"website":"www.example.com"
	},
	"users":[
		{"id":1, "name":"Johura Akter Sumi", "location": "Barisal"},
		{"id":2, "name":"Mehedi Hasan Nahid", "location": "Barisal"},
		{"id":3, "name":"Ariful Islam", "location": "Barisal"},
		{"id":4, "name":"Suhel Ahmed", "location": "Sylhet"},
		{"id":5, "name":"Firoz Serniabat", "location": "Gournodi"},
		{"id":6, "name":"Musa Jewel", "location": "Barisal", "visits": [
			{"name": "Sylhet", "year": 2011},
			{"name": "Cox's Bazar", "year": 2012},
			{"name": "Bandarbar", "year": 2014}
		]}
	],
	"products": [
		{"id":1, "user_id": 2, "city": "bsl", "name":"iPhone", "cat":1, "price": 80000},
		{"id":2, "user_id": 2, "city": null, "name":"macbook pro", "cat": 2, "price": 150000},
		{"id":3, "user_id": 2, "city": "dhk", "name":"Redmi 3S Prime", "cat": 1, "price": 12000},
		{"id":4, "user_id": 1, "city": null, "name":"Redmi 4X", "cat":1, "price": 15000},
		{"id":5, "user_id": 1, "city": "bsl", "name":"macbook air", "cat": 2, "price": 110000},
		{"id":6, "user_id": 2, "city": null, "name":"macbook air 1", "cat": 2, "price": 81000}
	]
}
use Nahid\JsonQ\Jsonq;

$q = new Jsonq('data.json');
$res = $q->from('products')
    ->where('cat', '=', 2)
    ->get();
dump($res);

//This will print
/*
array:3 [?
  1 => {#7 ?
    +"id": 2
    +"user_id": 2
    +"city": null
    +"name": "macbook pro"
    +"cat": 2
    +"price": 150000
  }
  4 => {#8 ?
    +"id": 5
    +"user_id": 1
    +"city": "bsl"
    +"name": "macbook air"
    +"cat": 2
    +"price": 110000
  }
  5 => {#9 ?
    +"id": 6
    +"user_id": 2
    +"city": null
    +"name": "macbook air 1"
    +"cat": 2
    +"price": 81000
  }
]
*/

GO JSONQ được phát triển bởi Saddam H - sắp tớisum() method instead of get():

$result = $json->from('products')
        ->where('cat', '=', 2)
        ->sum('price');
dump($result);

//It will print:
/*
365000
*/

Hỗ trợ trên bia

Nay ban! Giúp tôi với một vài: bia:!

JSONQ là một gói PHP đơn giản, thanh lịch để truy vấn bất kỳ loại dữ liệu JSON nào. Nó sẽ làm cho cuộc sống của bạn dễ dàng hơn bằng cách cung cấp hương vị của một truy vấn giống như ORM trên JSON của bạn.

Hỗ trợ cho dự án này

Danh sách API:

  • tại
  • AVG
  • Chunk
  • sưu tầm
  • cột
  • sao chép
  • đếm
  • mỗi
  • ngoại trừ
  • tồn tại
  • tìm về
  • lọc
  • tìm thấy
  • Đầu tiên
  • từ
  • nhóm
  • ộc tự
  • nhập khẩu
  • json
  • chìa khóa
  • Cuối cùng
  • vĩ mô
  • Tối đa
  • Tối thiểu
  • thứ n
  • hoặc ở nơi nào
  • đường ống
  • cài lại
  • lựa chọn
  • kích thước
  • loại
  • Sắp xếp
  • Tổng
  • sau đó
  • tojson
  • biến đổi
  • giá trị
  • ở đâu
  • ở đâu
  • ở đó
  • trong đó
  • ở đâu
  • wherenotin
  • wherenull
  • wherenotnull
  • wherestartswith

composer require nahid/jsonq 1

Phương thức này sẽ thực thi các truy vấn và sẽ trả về dữ liệu kết quả. Bạn cần gọi nó cuối cùng sau khi sử dụng một số phương thức truy vấn. Chi tiết có thể được tìm thấy trong các ví dụ API khác.

composer require nahid/jsonq 2

  • `Path` - Phân cấp đường dẫn của dữ liệu bạn muốn tìm.

Bạn không cần phải gọi phương thức

composer require nahid/jsonq
1 sau này. Bởi vì phương pháp này sẽ tìm nạp và trả lại dữ liệu của chính nó.

Hãy cẩn thận: Bạn không thể chuỗi các phương thức truy vấn tiếp theo sau đó. Nếu bạn cần điều đó, bạn nên sử dụng phương thức

composer require nahid/jsonq
4 hoặc
composer require nahid/jsonq
5.
You can't chain further query methods after it. If you need that, you should use
composer require nahid/jsonq
4 or
composer require nahid/jsonq
5 method.

example:

Giả sử bạn muốn nhận được giá trị của thuộc tính _'Cities'_ của dữ liệu JSON của bạn. Bạn có thể làm điều đó như thế này:

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
0

Nếu bạn muốn đi qua hệ thống phân cấp sâu hơn, bạn có thể làm điều đó như:

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
0

Xem một ví dụ chi tiết ở đây.

composer require nahid/jsonq 6

  • `path` (tùy chọn) - Hệ thống phân cấp đường dẫn của dữ liệu bạn muốn bắt đầu truy vấn.

Theo mặc định, truy vấn sẽ được bắt đầu từ gốc của dữ liệu JSON bạn đã đưa ra. Nếu trước tiên bạn muốn chuyển sang hệ thống phân cấp đường dẫn lồng nhau của dữ liệu từ nơi bạn muốn bắt đầu truy vấn của mình, bạn sẽ sử dụng phương thức này. Bỏ qua tham số

composer require nahid/jsonq
7 hoặc cho '.' Vì tham số cũng sẽ bắt đầu truy vấn từ dữ liệu gốc.'.' as parameter will also start query from the root Data.

Sự khác biệt giữa phương pháp này và

composer require nahid/jsonq
8 là, phương thức
composer require nahid/jsonq
8 sẽ trả về dữ liệu từ hệ thống phân cấp đường dẫn đã cho. Mặt khác, phương thức này sẽ trả về thể hiện đối tượng, để bạn có thể tiếp tục chuỗi các phương thức truy vấn sau nó.

example:

Giả sử bạn muốn bắt đầu truy vấn qua các giá trị của thuộc tính _'Vendor.name'_ của dữ liệu JSON của bạn. Bạn có thể làm điều đó như thế này:

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
2

Nếu bạn muốn đi qua hệ thống phân cấp sâu hơn, bạn có thể làm điều đó như:

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
3

Xem một ví dụ chi tiết ở đây.

use Nahid/JsonQ/Jsonq; $jsonq = new Jsonq('data.json'); 0

`path` (tùy chọn) - Hệ thống phân cấp đường dẫn của dữ liệu bạn muốn bắt đầu truy vấn.

use Nahid/JsonQ/Jsonq; $jsonq = new Jsonq('data.json'); 2

  • Theo mặc định, truy vấn sẽ được bắt đầu từ gốc của dữ liệu JSON bạn đã đưa ra. Nếu trước tiên bạn muốn chuyển sang hệ thống phân cấp đường dẫn lồng nhau của dữ liệu từ nơi bạn muốn bắt đầu truy vấn của mình, bạn sẽ sử dụng phương thức này. Bỏ qua tham số
    composer require nahid/jsonq
    
    7 hoặc cho '.' Vì tham số cũng sẽ bắt đầu truy vấn từ dữ liệu gốc.
  • Sự khác biệt giữa phương pháp này và
    composer require nahid/jsonq
    
    8 là, phương thức
    composer require nahid/jsonq
    
    8 sẽ trả về dữ liệu từ hệ thống phân cấp đường dẫn đã cho. Mặt khác, phương thức này sẽ trả về thể hiện đối tượng, để bạn có thể tiếp tục chuỗi các phương thức truy vấn sau nó.
  • Giả sử bạn muốn bắt đầu truy vấn qua các giá trị của thuộc tính _'Vendor.name'_ của dữ liệu JSON của bạn. Bạn có thể làm điều đó như thế này:

    Đây là một phương pháp bí danh của

    composer require nahid/jsonq
    
    5 và sẽ hoạt động chính xác như thế. Xem ví dụ ở đây.

example:

`key` - tên thuộc tính của dữ liệu. Hoặc bạn có thể chuyển một chức năng ở đây để nhóm nhiều truy vấn bên trong nó. Xem chi tiết trong ví dụ

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
4

`val` - giá trị được khớp với. Nó có thể là một _int_, _String_, _bool_ hoặc thậm chí _function_ - tùy thuộc vào `op`.

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
5

Xem một ví dụ chi tiết ở đây.

$json->collect(['id'=>1, 'name'=>'Nahid']); 2

`path` (tùy chọn) - Hệ thống phân cấp đường dẫn của dữ liệu bạn muốn bắt đầu truy vấn.

Theo mặc định, truy vấn sẽ được bắt đầu từ gốc của dữ liệu JSON bạn đã đưa ra. Nếu trước tiên bạn muốn chuyển sang hệ thống phân cấp đường dẫn lồng nhau của dữ liệu từ nơi bạn muốn bắt đầu truy vấn của mình, bạn sẽ sử dụng phương thức này. Bỏ qua tham số

composer require nahid/jsonq
7 hoặc cho '.' Vì tham số cũng sẽ bắt đầu truy vấn từ dữ liệu gốc.

Sự khác biệt giữa phương pháp này và
composer require nahid/jsonq
8 là, phương thức
composer require nahid/jsonq
8 sẽ trả về dữ liệu từ hệ thống phân cấp đường dẫn đã cho. Mặt khác, phương thức này sẽ trả về thể hiện đối tượng, để bạn có thể tiếp tục chuỗi các phương thức truy vấn sau nó.

Giả sử bạn muốn bắt đầu truy vấn qua các giá trị của thuộc tính _'Vendor.name'_ của dữ liệu JSON của bạn. Bạn có thể làm điều đó như thế này:

//data.json { "name": "products", "description": "Features product list", "vendor":{ "name": "Computer Source BD", "email": "", "website":"www.example.com" }, "users":[ {"id":1, "name":"Johura Akter Sumi", "location": "Barisal"}, {"id":2, "name":"Mehedi Hasan Nahid", "location": "Barisal"}, {"id":3, "name":"Ariful Islam", "location": "Barisal"}, {"id":4, "name":"Suhel Ahmed", "location": "Sylhet"}, {"id":5, "name":"Firoz Serniabat", "location": "Gournodi"}, {"id":6, "name":"Musa Jewel", "location": "Barisal", "visits": [ {"name": "Sylhet", "year": 2011}, {"name": "Cox's Bazar", "year": 2012}, {"name": "Bandarbar", "year": 2014} ]} ], "products": [ {"id":1, "user_id": 2, "city": "bsl", "name":"iPhone", "cat":1, "price": 80000}, {"id":2, "user_id": 2, "city": null, "name":"macbook pro", "cat": 2, "price": 150000}, {"id":3, "user_id": 2, "city": "dhk", "name":"Redmi 3S Prime", "cat": 1, "price": 12000}, {"id":4, "user_id": 1, "city": null, "name":"Redmi 4X", "cat":1, "price": 15000}, {"id":5, "user_id": 1, "city": "bsl", "name":"macbook air", "cat": 2, "price": 110000}, {"id":6, "user_id": 2, "city": null, "name":"macbook air 1", "cat": 2, "price": 81000} ] } 0

  • Đây là một phương pháp bí danh của
    composer require nahid/jsonq
    
    5 và sẽ hoạt động chính xác như thế. Xem ví dụ ở đây.
  • `key` - tên thuộc tính của dữ liệu. Hoặc bạn có thể chuyển một chức năng ở đây để nhóm nhiều truy vấn bên trong nó. Xem chi tiết trong ví dụArray

`val` - giá trị được khớp với. Nó có thể là một _int_, _String_, _bool_ hoặc thậm chí _function_ - tùy thuộc vào `op`.

//data.json { "name": "products", "description": "Features product list", "vendor":{ "name": "Computer Source BD", "email": "", "website":"www.example.com" }, "users":[ {"id":1, "name":"Johura Akter Sumi", "location": "Barisal"}, {"id":2, "name":"Mehedi Hasan Nahid", "location": "Barisal"}, {"id":3, "name":"Ariful Islam", "location": "Barisal"}, {"id":4, "name":"Suhel Ahmed", "location": "Sylhet"}, {"id":5, "name":"Firoz Serniabat", "location": "Gournodi"}, {"id":6, "name":"Musa Jewel", "location": "Barisal", "visits": [ {"name": "Sylhet", "year": 2011}, {"name": "Cox's Bazar", "year": 2012}, {"name": "Bandarbar", "year": 2014} ]} ], "products": [ {"id":1, "user_id": 2, "city": "bsl", "name":"iPhone", "cat":1, "price": 80000}, {"id":2, "user_id": 2, "city": null, "name":"macbook pro", "cat": 2, "price": 150000}, {"id":3, "user_id": 2, "city": "dhk", "name":"Redmi 3S Prime", "cat": 1, "price": 12000}, {"id":4, "user_id": 1, "city": null, "name":"Redmi 4X", "cat":1, "price": 15000}, {"id":5, "user_id": 1, "city": "bsl", "name":"macbook air", "cat": 2, "price": 110000}, {"id":6, "user_id": 2, "city": null, "name":"macbook air 1", "cat": 2, "price": 81000} ] } 2

  • Đây là một phương pháp bí danh của
    composer require nahid/jsonq
    
    5 và sẽ hoạt động chính xác như thế. Xem ví dụ ở đây.
  • `key` - tên thuộc tính của dữ liệu. Hoặc bạn có thể chuyển một chức năng ở đây để nhóm nhiều truy vấn bên trong nó. Xem chi tiết trong ví dụArray

`val` - giá trị được khớp với. Nó có thể là một _int_, _String_, _bool_ hoặc thậm chí _function_ - tùy thuộc vào `op`.

`op` - toán hạng sẽ được sử dụng để kết hợp. Các toán hạng sau đây có sẵn để sử dụng:

  • Đây là một phương pháp bí danh của
    composer require nahid/jsonq
    
    5 và sẽ hoạt động chính xác như thế. Xem ví dụ ở đây.

`key` - tên thuộc tính của dữ liệu. Hoặc bạn có thể chuyển một chức năng ở đây để nhóm nhiều truy vấn bên trong nó. Xem chi tiết trong ví dụ

//data.json { "name": "products", "description": "Features product list", "vendor":{ "name": "Computer Source BD", "email": "", "website":"www.example.com" }, "users":[ {"id":1, "name":"Johura Akter Sumi", "location": "Barisal"}, {"id":2, "name":"Mehedi Hasan Nahid", "location": "Barisal"}, {"id":3, "name":"Ariful Islam", "location": "Barisal"}, {"id":4, "name":"Suhel Ahmed", "location": "Sylhet"}, {"id":5, "name":"Firoz Serniabat", "location": "Gournodi"}, {"id":6, "name":"Musa Jewel", "location": "Barisal", "visits": [ {"name": "Sylhet", "year": 2011}, {"name": "Cox's Bazar", "year": 2012}, {"name": "Bandarbar", "year": 2014} ]} ], "products": [ {"id":1, "user_id": 2, "city": "bsl", "name":"iPhone", "cat":1, "price": 80000}, {"id":2, "user_id": 2, "city": null, "name":"macbook pro", "cat": 2, "price": 150000}, {"id":3, "user_id": 2, "city": "dhk", "name":"Redmi 3S Prime", "cat": 1, "price": 12000}, {"id":4, "user_id": 1, "city": null, "name":"Redmi 4X", "cat":1, "price": 15000}, {"id":5, "user_id": 1, "city": "bsl", "name":"macbook air", "cat": 2, "price": 110000}, {"id":6, "user_id": 2, "city": null, "name":"macbook air 1", "cat": 2, "price": 81000} ] } 7

  • Đây là một phương pháp bí danh của
    composer require nahid/jsonq
    
    5 và sẽ hoạt động chính xác như thế. Xem ví dụ ở đây.

`key` - tên thuộc tính của dữ liệu. Hoặc bạn có thể chuyển một chức năng ở đây để nhóm nhiều truy vấn bên trong nó. Xem chi tiết trong ví dụ

use Nahid\JsonQ\Jsonq; $q = new Jsonq('data.json'); $res = $q->from('products') ->where('cat', '=', 2) ->get(); dump($res); //This will print /* array:3 [? 1 => {#7 ? +"id": 2 +"user_id": 2 +"city": null +"name": "macbook pro" +"cat": 2 +"price": 150000 } 4 => {#8 ? +"id": 5 +"user_id": 1 +"city": "bsl" +"name": "macbook air" +"cat": 2 +"price": 110000 } 5 => {#9 ? +"id": 6 +"user_id": 2 +"city": null +"name": "macbook air 1" +"cat": 2 +"price": 81000 } ] */ 0

  • Đây là một phương pháp bí danh của
    composer require nahid/jsonq
    
    5 và sẽ hoạt động chính xác như thế. Xem ví dụ ở đây.
  • `key` - tên thuộc tính của dữ liệu. Hoặc bạn có thể chuyển một chức năng ở đây để nhóm nhiều truy vấn bên trong nó. Xem chi tiết trong ví dụ

`val` - giá trị được khớp với. Nó có thể là một _int_, _String_, _bool_ hoặc thậm chí _function_ - tùy thuộc vào `op`.

use Nahid\JsonQ\Jsonq; $q = new Jsonq('data.json'); $res = $q->from('products') ->where('cat', '=', 2) ->get(); dump($res); //This will print /* array:3 [? 1 => {#7 ? +"id": 2 +"user_id": 2 +"city": null +"name": "macbook pro" +"cat": 2 +"price": 150000 } 4 => {#8 ? +"id": 5 +"user_id": 1 +"city": "bsl" +"name": "macbook air" +"cat": 2 +"price": 110000 } 5 => {#9 ? +"id": 6 +"user_id": 2 +"city": null +"name": "macbook air 1" +"cat": 2 +"price": 81000 } ] */ 2

  • Đây là một phương pháp bí danh của
    composer require nahid/jsonq
    
    5 và sẽ hoạt động chính xác như thế. Xem ví dụ ở đây.
  • `key` - tên thuộc tính của dữ liệu. Hoặc bạn có thể chuyển một chức năng ở đây để nhóm nhiều truy vấn bên trong nó. Xem chi tiết trong ví dụ

`val` - giá trị được khớp với. Nó có thể là một _int_, _String_, _bool_ hoặc thậm chí _function_ - tùy thuộc vào `op`.

use Nahid\JsonQ\Jsonq; $q = new Jsonq('data.json'); $res = $q->from('products') ->where('cat', '=', 2) ->get(); dump($res); //This will print /* array:3 [? 1 => {#7 ? +"id": 2 +"user_id": 2 +"city": null +"name": "macbook pro" +"cat": 2 +"price": 150000 } 4 => {#8 ? +"id": 5 +"user_id": 1 +"city": "bsl" +"name": "macbook air" +"cat": 2 +"price": 110000 } 5 => {#9 ? +"id": 6 +"user_id": 2 +"city": null +"name": "macbook air 1" +"cat": 2 +"price": 81000 } ] */ 4

  • Đây là một phương pháp bí danh của
    composer require nahid/jsonq
    
    5 và sẽ hoạt động chính xác như thế. Xem ví dụ ở đây.
  • `key` - tên thuộc tính của dữ liệu. Hoặc bạn có thể chuyển một chức năng ở đây để nhóm nhiều truy vấn bên trong nó. Xem chi tiết trong ví dụ

`val` - giá trị được khớp với. Nó có thể là một _int_, _String_, _bool_ hoặc thậm chí _function_ - tùy thuộc vào `op`.

use Nahid\JsonQ\Jsonq; $q = new Jsonq('data.json'); $res = $q->from('products') ->where('cat', '=', 2) ->get(); dump($res); //This will print /* array:3 [? 1 => {#7 ? +"id": 2 +"user_id": 2 +"city": null +"name": "macbook pro" +"cat": 2 +"price": 150000 } 4 => {#8 ? +"id": 5 +"user_id": 1 +"city": "bsl" +"name": "macbook air" +"cat": 2 +"price": 110000 } 5 => {#9 ? +"id": 6 +"user_id": 2 +"city": null +"name": "macbook air 1" +"cat": 2 +"price": 81000 } ] */ 6

  • `op` - toán hạng sẽ được sử dụng để kết hợp. Các toán hạng sau đây có sẵn để sử dụng:

example:

* `=`: Đối với khớp bình đẳng yếu * `eq`: giống như` = ` *`! Kết hợp * `seq`: giống như` == ` *`! gt`: giống như `>`

use Nahid/JsonQ/Jsonq;
$jsonq = new Jsonq('data.json');
4: Kiểm tra xem giá trị của dữ liệu đã cho là ít hơn nữa * * `lt`: giống như` = `
use Nahid/JsonQ/Jsonq;
$jsonq = new Jsonq('data.json');
6: Kiểm tra xem giá trị của dữ liệu đã cho là nhỏ hơn hoặc bằng với giá trị * *` lte`: Giống như `

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
7

Nếu dữ liệu bạn đang tổng hợp là mảng đơn giản, bạn không cần phải vượt qua tham số 'cột'. Xem ví dụ chi tiết ở đây

use Nahid\JsonQ\Jsonq; $q = new Jsonq('data.json'); $res = $q->from('products') ->where('cat', '=', 2) ->get(); dump($res); //This will print /* array:3 [? 1 => {#7 ? +"id": 2 +"user_id": 2 +"city": null +"name": "macbook pro" +"cat": 2 +"price": 150000 } 4 => {#8 ? +"id": 5 +"user_id": 1 +"city": "bsl" +"name": "macbook air" +"cat": 2 +"price": 110000 } 5 => {#9 ? +"id": 6 +"user_id": 2 +"city": null +"name": "macbook air 1" +"cat": 2 +"price": 81000 } ] */ 7

Nó sẽ trả về số lượng các yếu tố trong bộ sưu tập.

example:

Giả sử bạn muốn tìm thấy có bao nhiêu phần tử trong thuộc tính _'Products'_. Bạn có thể làm điều đó như:

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
8

Xem ví dụ chi tiết ở đây.

use Nahid\JsonQ\Jsonq; $q = new Jsonq('data.json'); $res = $q->from('products') ->where('cat', '=', 2) ->get(); dump($res); //This will print /* array:3 [? 1 => {#7 ? +"id": 2 +"user_id": 2 +"city": null +"name": "macbook pro" +"cat": 2 +"price": 150000 } 4 => {#8 ? +"id": 5 +"user_id": 1 +"city": "bsl" +"name": "macbook air" +"cat": 2 +"price": 110000 } 5 => {#9 ? +"id": 6 +"user_id": 2 +"city": null +"name": "macbook air 1" +"cat": 2 +"price": 81000 } ] */ 8

Đây là một phương pháp bí danh của

use Nahid\JsonQ\Jsonq;

$q = new Jsonq('data.json');
$res = $q->from('products')
    ->where('cat', '=', 2)
    ->get();
dump($res);

//This will print
/*
array:3 [?
  1 => {#7 ?
    +"id": 2
    +"user_id": 2
    +"city": null
    +"name": "macbook pro"
    +"cat": 2
    +"price": 150000
  }
  4 => {#8 ?
    +"id": 5
    +"user_id": 1
    +"city": "bsl"
    +"name": "macbook air"
    +"cat": 2
    +"price": 110000
  }
  5 => {#9 ?
    +"id": 6
    +"user_id": 2
    +"city": null
    +"name": "macbook air 1"
    +"cat": 2
    +"price": 81000
  }
]
*/
7.

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 0

  • `cột` - tên thuộc tính của dữ liệu

example:

Giả sử bạn muốn tìm mức tối đa của _'Price'_ của _'Products'_. Bạn có thể làm điều đó như thế này:

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
9

Nếu dữ liệu bạn đang truy vấn là mảng đơn giản, bạn không cần phải vượt qua tham số 'cột'. Xem ví dụ chi tiết ở đây

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 1

  • `cột` - tên thuộc tính của dữ liệu

example:

Giả sử bạn muốn tìm mức tối đa của _'Price'_ của _'Products'_. Bạn có thể làm điều đó như thế này:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};
0

Nếu dữ liệu bạn đang truy vấn là mảng đơn giản, bạn không cần phải vượt qua tham số 'cột'. Xem ví dụ chi tiết ở đây

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 2

  • `cột` - tên thuộc tính của dữ liệu

example:

Giả sử bạn muốn tìm mức tối đa của _'Price'_ của _'Products'_. Bạn có thể làm điều đó như thế này:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};
1

Nếu dữ liệu bạn đang truy vấn là mảng đơn giản, bạn không cần phải vượt qua tham số 'cột'. Xem ví dụ chi tiết ở đây

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 3

Giả sử bạn muốn tìm mức tối thiểu của _'Price'_ của _'Products'_. Bạn có thể làm điều đó như thế này:

example:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};
2

Xem ví dụ chi tiết ở đây.

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 4

Đây là một phương pháp bí danh của

use Nahid\JsonQ\Jsonq;

$q = new Jsonq('data.json');
$res = $q->from('products')
    ->where('cat', '=', 2)
    ->get();
dump($res);

//This will print
/*
array:3 [?
  1 => {#7 ?
    +"id": 2
    +"user_id": 2
    +"city": null
    +"name": "macbook pro"
    +"cat": 2
    +"price": 150000
  }
  4 => {#8 ?
    +"id": 5
    +"user_id": 1
    +"city": "bsl"
    +"name": "macbook air"
    +"cat": 2
    +"price": 110000
  }
  5 => {#9 ?
    +"id": 6
    +"user_id": 2
    +"city": null
    +"name": "macbook air 1"
    +"cat": 2
    +"price": 81000
  }
]
*/
7.

example:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};
3

Xem ví dụ chi tiết ở đây.

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 5

  • Đây là một phương pháp bí danh của
    use Nahid\JsonQ\Jsonq;
    
    $q = new Jsonq('data.json');
    $res = $q->from('products')
        ->where('cat', '=', 2)
        ->get();
    dump($res);
    
    //This will print
    /*
    array:3 [?
      1 => {#7 ?
        +"id": 2
        +"user_id": 2
        +"city": null
        +"name": "macbook pro"
        +"cat": 2
        +"price": 150000
      }
      4 => {#8 ?
        +"id": 5
        +"user_id": 1
        +"city": "bsl"
        +"name": "macbook air"
        +"cat": 2
        +"price": 110000
      }
      5 => {#9 ?
        +"id": 6
        +"user_id": 2
        +"city": null
        +"name": "macbook air 1"
        +"cat": 2
        +"price": 81000
      }
    ]
    */
    
    7.

`cột` - tên thuộc tính của dữ liệupositive value, it will return the nth element from the beginning. If the given index is a negative value, it will return the nth element from the end.

example:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};
4

Xem ví dụ chi tiết ở đây.

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 6

Đây là một phương pháp bí danh của

use Nahid\JsonQ\Jsonq;

$q = new Jsonq('data.json');
$res = $q->from('products')
    ->where('cat', '=', 2)
    ->get();
dump($res);

//This will print
/*
array:3 [?
  1 => {#7 ?
    +"id": 2
    +"user_id": 2
    +"city": null
    +"name": "macbook pro"
    +"cat": 2
    +"price": 150000
  }
  4 => {#8 ?
    +"id": 5
    +"user_id": 1
    +"city": "bsl"
    +"name": "macbook air"
    +"cat": 2
    +"price": 110000
  }
  5 => {#9 ?
    +"id": 6
    +"user_id": 2
    +"city": null
    +"name": "macbook air 1"
    +"cat": 2
    +"price": 81000
  }
]
*/
7.true if the element is not empty or not null or not an empty array or not an empty object.

example:

Giả sử bạn muốn tìm thấy có bao nhiêu phần tử trong thuộc tính _'Products'_. Bạn có thể làm điều đó như:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};
5

Xem ví dụ chi tiết ở đây.

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 7

  • Đây là một phương pháp bí danh của
    use Nahid\JsonQ\Jsonq;
    
    $q = new Jsonq('data.json');
    $res = $q->from('products')
        ->where('cat', '=', 2)
        ->get();
    dump($res);
    
    //This will print
    /*
    array:3 [?
      1 => {#7 ?
        +"id": 2
        +"user_id": 2
        +"city": null
        +"name": "macbook pro"
        +"cat": 2
        +"price": 150000
      }
      4 => {#8 ?
        +"id": 5
        +"user_id": 1
        +"city": "bsl"
        +"name": "macbook air"
        +"cat": 2
        +"price": 110000
      }
      5 => {#9 ?
        +"id": 6
        +"user_id": 2
        +"city": null
        +"name": "macbook air 1"
        +"cat": 2
        +"price": 81000
      }
    ]
    */
    
    7.

example:

`cột` - tên thuộc tính của dữ liệu

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};
6

Xem ví dụ chi tiết ở đây.

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 8

  • Đây là một phương pháp bí danh của
    use Nahid\JsonQ\Jsonq;
    
    $q = new Jsonq('data.json');
    $res = $q->from('products')
        ->where('cat', '=', 2)
        ->get();
    dump($res);
    
    //This will print
    /*
    array:3 [?
      1 => {#7 ?
        +"id": 2
        +"user_id": 2
        +"city": null
        +"name": "macbook pro"
        +"cat": 2
        +"price": 150000
      }
      4 => {#8 ?
        +"id": 5
        +"user_id": 1
        +"city": "bsl"
        +"name": "macbook air"
        +"cat": 2
        +"price": 110000
      }
      5 => {#9 ?
        +"id": 6
        +"user_id": 2
        +"city": null
        +"name": "macbook air 1"
        +"cat": 2
        +"price": 81000
      }
    ]
    */
    
    7.ascending. You need to pass 'desc' as the _'order'_ parameter to sort the data in descending order. Also, you can pass a compare function in _'order'_ parameter to define your own logic to order the data.

`cột` - tên thuộc tính của dữ liệu This method should be used for plain Array. If you want to sort an Array of Objects you should use the sortBy() method described later.

example:

Giả sử bạn muốn tìm mức tối đa của _'Price'_ của _'Products'_. Bạn có thể làm điều đó như thế này:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};
7

Xem ví dụ chi tiết ở đây.

$result = $json->from('products') ->where('cat', '=', 2) ->sum('price'); dump($result); //It will print: /* 365000 */ 9

  • Đây là một phương pháp bí danh của
    use Nahid\JsonQ\Jsonq;
    
    $q = new Jsonq('data.json');
    $res = $q->from('products')
        ->where('cat', '=', 2)
        ->get();
    dump($res);
    
    //This will print
    /*
    array:3 [?
      1 => {#7 ?
        +"id": 2
        +"user_id": 2
        +"city": null
        +"name": "macbook pro"
        +"cat": 2
        +"price": 150000
      }
      4 => {#8 ?
        +"id": 5
        +"user_id": 1
        +"city": "bsl"
        +"name": "macbook air"
        +"cat": 2
        +"price": 110000
      }
      5 => {#9 ?
        +"id": 6
        +"user_id": 2
        +"city": null
        +"name": "macbook air 1"
        +"cat": 2
        +"price": 81000
      }
    ]
    */
    
    7.
  • Đây là một phương pháp bí danh của
    use Nahid\JsonQ\Jsonq;
    
    $q = new Jsonq('data.json');
    $res = $q->from('products')
        ->where('cat', '=', 2)
        ->get();
    dump($res);
    
    //This will print
    /*
    array:3 [?
      1 => {#7 ?
        +"id": 2
        +"user_id": 2
        +"city": null
        +"name": "macbook pro"
        +"cat": 2
        +"price": 150000
      }
      4 => {#8 ?
        +"id": 5
        +"user_id": 1
        +"city": "bsl"
        +"name": "macbook air"
        +"cat": 2
        +"price": 110000
      }
      5 => {#9 ?
        +"id": 6
        +"user_id": 2
        +"city": null
        +"name": "macbook air 1"
        +"cat": 2
        +"price": 81000
      }
    ]
    */
    
    7.ascending. You need to pass 'desc' as the _'order'_ parameter to sort the data in descending order. Also, you can pass a compare function in _'order'_ parameter to define your own logic to order the data.

`cột` - tên thuộc tính của dữ liệu This method should be used for Array of Objects. If you want to sort a plain Array you should use the sort() method described earlier.

example:

Giả sử bạn muốn tìm mức tối đa của _'Price'_ của _'Products'_. Bạn có thể làm điều đó như thế này:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};
8

Xem ví dụ chi tiết ở đây.

[ { "id":1, "name":"Candy Wrapper", "value":500, }, { "id":2, "name":"Torch", "value":2000, } ] 00

  • Nếu dữ liệu bạn đang truy vấn là mảng đơn giản, bạn không cần phải vượt qua tham số 'cột'. Xem ví dụ chi tiết ở đây

Giả sử bạn muốn tìm mức tối thiểu của _'Price'_ của _'Products'_. Bạn có thể làm điều đó như thế này:

Nếu dữ liệu bạn đang truy vấn là mảng đơn giản, bạn không cần phải vượt qua tham số 'thuộc tính'. Xem ví dụ chi tiết ở đây

[ { "id":1, "name":"Candy Wrapper", "value":500, }, { "id":2, "name":"Torch", "value":2000, } ] 01

Giả sử bạn muốn tìm mức trung bình của _'Price'_ của _'Products'_. Bạn có thể làm điều đó như thế này:

Nếu dữ liệu bạn đang truy vấn là mảng đơn giản, bạn không cần phải vượt qua tham số 'thuộc tính'. Xem ví dụ chi tiết ở đây

Giả sử bạn muốn tìm mức trung bình của _'Price'_ của _'Products'_. Bạn có thể làm điều đó như thế này:

Nó sẽ trả về yếu tố đầu tiên của bộ sưu tập.

Nó sẽ trả về yếu tố cuối cùng của bộ sưu tập.

`index` - chỉ mục của phần tử được trả về.

Nó sẽ trả về phần tử thứ n của bộ sưu tập. Nếu chỉ mục đã cho là một giá trị dương, nó sẽ trả về phần tử thứ n ngay từ đầu. Nếu chỉ mục đã cho là một giá trị âm, nó sẽ trả về phần tử thứ n từ cuối.

  • Nó sẽ trả về đúng nếu phần tử không trống hoặc không null hoặc không một mảng trống hoặc không phải là một đối tượng trống.
  • `Cột` - thuộc tính mà bạn muốn nhóm bộ sưu tập.
  • Giả sử bạn muốn nhóm dữ liệu _'Users'_ dựa trên thuộc tính _'location'_. Bạn có thể làm điều đó như:

`order` - Nếu bạn bỏ qua thuộc tính _'order'_, dữ liệu sẽ được đặt hàng theo mặc định là tăng dần. Bạn cần truyền 'Desc' dưới dạng tham số _'order'_ để sắp xếp dữ liệu theo thứ tự giảm dần. Ngoài ra, bạn có thể chuyển một hàm so sánh trong tham số _'order'_ để xác định logic của riêng bạn để đặt hàng dữ liệu.

Lưu ý: Phương pháp này nên được sử dụng cho mảng trơn. Nếu bạn muốn sắp xếp một mảng các đối tượng, bạn nên sử dụng phương thức SortBy () được mô tả sau.

Hướng dẫn search in json file php - tìm kiếm trong tệp json php