JsonQ เป็นแพ็คเกจ PHP ที่เรียบง่ายและสวยงามสำหรับสืบค้นข้อมูล JSON ทุกประเภท มันจะทำให้ชีวิตของคุณง่ายขึ้นโดยให้รสชาติของการสืบค้นที่คล้ายกับ ORM บน JSON ของคุณ
สวัสดี โปรดช่วยฉันปรับปรุงโครงการนี้ทุกวัน
จากเวอร์ชัน JsonQ 6.0 คุณลักษณะทั้งหมดเขียนใหม่จาก QAarray หลังจากใช้งานมาเป็นเวลานาน เราสังเกตเห็นว่า Query Engine ของ JsonQ ควรแยกออกจากกัน เนื่องจากผู้คนต้องการสืบค้นข้อมูลประเภทต่างๆ เช่น CSV, YAML, XML ดังนั้นหากเราเก็บ Query Engine ไว้แน่นหนาควบคู่ไปกับโปรเจ็กต์นี้ มันก็ไม่สมเหตุสมผล นั่นเป็นเหตุผลที่เราย้ายส่วนของ Query Engine และพัฒนาแพ็คเกจ QAarray ใหม่ Qarray ได้รับการออกแบบมาเพื่อการสืบค้นผ่านอาเรย์ PHP ดั้งเดิม และใครๆ ก็สามารถใช้ Engine ของตัวเองได้ เช่น JsonQ
โปรดอย่าอัปเดตเป็นเวอร์ชัน >= 6.0 โดยตรงจากด้านล่างนี้
composer require nahid/jsonq
คุณสามารถเริ่มใช้แพ็คเกจนี้ได้ทันทีโดยการนำเข้าข้อมูล JSON จากไฟล์:
use Nahid /JsonQ/Jsonq;
$ jsonq = new Jsonq ( ' data.json ' );
หรือจากสตริง JSON:
$ json -> json ( ' {"id": 1, "name": "Nahid"} ' );
หรือจากอาร์เรย์ PHP:
$ json -> collect ([ ' id ' => 1 , ' name ' => ' Nahid ' ]);
คุณสามารถเริ่มค้นหาข้อมูลของคุณโดยใช้วิธีการสืบค้นต่างๆ เช่น find , โดยที่ , หรือที่ไหน , WhereIn , WhereStartsWith , WhereEndsWith , WhereContains และอื่นๆ นอกจากนี้คุณยังสามารถรวบรวมข้อมูลของคุณหลังจากการสืบค้นโดยใช้ sum , count , groupBy , max , min เป็นต้น
มาดูตัวอย่างสั้นๆ:
//data.json
{
"name" : " products " ,
"description" : " Features product list " ,
"vendor" :{
"name" : " Computer Source BD " ,
"email" : " [email protected] " ,
"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
}
]
*/
สมมติว่าเราต้องการรับผลรวมของ ราคา ของผลลัพธ์ที่สอบถาม เราสามารถทำได้ง่ายๆ โดยการเรียกใช้เมธอด sum() แทน get() :
$ result = $ json -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 2 )
-> sum ( ' price ' );
dump ( $ result );
//It will print:
/*
365000
*/
ค่อนข้างเรียบร้อยใช่มั้ย?
มาสำรวจ API แบบเต็มเพื่อดูว่าไลบรารีนี้สามารถทำอะไรให้คุณได้บ้าง เราจะ?
ตัวอย่าง API ต่อไปนี้จะแสดงตามข้อมูล JSON ตัวอย่างที่ให้ไว้ที่นี่ เพื่อให้เข้าใจตัวอย่างได้ดีขึ้น โปรดดูข้อมูล JSON ก่อน สามารถดูตัวอย่างโดยละเอียดของแต่ละ API ได้ที่นี่
รายการ API:
fetch()
วิธีนี้จะดำเนินการค้นหาและจะส่งคืนข้อมูลผลลัพธ์ คุณต้องเรียกมันในที่สุดหลังจากใช้วิธีการสืบค้นบางอย่าง ดูรายละเอียดได้ในตัวอย่าง API อื่นๆ
find(path)
path
-- ลำดับชั้นเส้นทางของข้อมูลที่คุณต้องการค้นหา คุณไม่จำเป็นต้องเรียกใช้เมธอด fetch()
หลังจากนี้ เพราะวิธีนี้จะดึงข้อมูลและส่งคืนข้อมูลเอง
ข้อแม้: คุณไม่สามารถเชื่อมโยงวิธีการสืบค้นเพิ่มเติมหลังจากนั้นได้ หากคุณต้องการสิ่งนั้น คุณควรใช้เมธอด at()
หรือ from()
ตัวอย่าง:
สมมติว่าคุณต้องการรับมูลค่าของคุณสมบัติ 'เมือง' ของข้อมูล Json ของคุณ คุณสามารถทำได้เช่นนี้:
$ q = new Jsonq ( ' data.json ' );
echo $ q -> find ( ' vendor.name ' );
หากคุณต้องการสำรวจลำดับชั้นที่ลึกยิ่งขึ้น คุณสามารถทำได้ดังนี้:
$ q = new Jsonq ( ' data.json ' );
echo $ q -> find ( ' vendor.name ' );
ดูตัวอย่างรายละเอียดได้ที่นี่
from(path)
path
(ไม่บังคับ) -- ลำดับชั้นเส้นทางของข้อมูลที่คุณต้องการเริ่มสืบค้น ตามค่าเริ่มต้น การสืบค้นจะเริ่มต้นจากรากของข้อมูล JSON ที่คุณให้ไว้ หากคุณต้องการย้ายไปยังลำดับชั้นเส้นทางแบบซ้อนของข้อมูลที่คุณต้องการเริ่มการสืบค้นก่อน คุณจะต้องใช้วิธีนี้ ข้ามพารามิเตอร์ path
หรือให้ '.' เนื่องจากพารามิเตอร์จะเริ่มการสืบค้นจากข้อมูลรูทด้วย
ความแตกต่างระหว่างเมธอดนี้กับ find()
ก็คือ เมธอด find()
จะส่งคืนข้อมูลจากลำดับชั้นของพาธที่กำหนด ในทางกลับกัน เมธอดนี้จะส่งคืนอินสแตนซ์ Object เพื่อให้คุณสามารถเชื่อมโยงวิธีการสืบค้นหลังจากนั้นได้
ตัวอย่าง:
สมมติว่าคุณต้องการเริ่มค้นหาด้วยค่าของคุณสมบัติ 'vendor.name' ของข้อมูล JSON ของคุณ คุณสามารถทำได้เช่นนี้:
$ q = new Jsonq ( ' data.json ' );
echo $ q -> from ( ' vendor.name ' )-> get ();
หากคุณต้องการสำรวจลำดับชั้นที่ลึกยิ่งขึ้น คุณสามารถทำได้ดังนี้:
$ q = new Jsonq ( ' data.json ' );
echo $ q -> from ( ' users.5.visits ' )-> get ();
ดูตัวอย่างรายละเอียดได้ที่นี่
at(path)
นี่เป็นวิธีนามแฝงของ from()
และจะทำงานเช่นนั้นทุกประการ ดูตัวอย่างที่นี่
where(key, condition, val)
key
-- ชื่อคุณสมบัติของข้อมูล หรือคุณสามารถส่งฟังก์ชันที่นี่เพื่อจัดกลุ่มแบบสอบถามหลายรายการไว้ภายในได้ ดูรายละเอียดตามตัวอย่าง
val
- ค่าที่จะจับคู่ อาจเป็น int , string , bool หรือแม้แต่ Function - ขึ้นอยู่กับ op
op
-- ตัวถูกดำเนินการที่จะใช้สำหรับการจับคู่ ตัวถูกดำเนินการต่อไปนี้พร้อมใช้งาน:
=
: สำหรับการจับคู่ความเท่าเทียมกันแบบอ่อนeq
: เหมือนกับ =
!=
: สำหรับการจับคู่ที่อ่อนแอไม่เท่าเทียมกันneq
: เช่นเดียวกับ !=
==
: สำหรับการจับคู่ความเท่าเทียมกันที่เข้มงวดseq
: เหมือนกับ ==
!==
: สำหรับการจับคู่ที่เข้มงวดไม่เท่าเทียมกันsneq
: เช่นเดียวกับ !==
>
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลมากกว่า ค่า val หรือไม่gt
: เช่นเดียวกับ >
<
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลน้อยกว่า val หรือไม่lt
: เช่นเดียวกับ <
>=
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลมากกว่าหรือเท่ากับ valgte
: เหมือนกับ >=
<=
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลน้อยกว่าหรือเท่ากับ vallte
: เหมือนกับ <=
null
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลเป็น โมฆะ (พารามิเตอร์ val
โดย where()
สามารถละเว้นได้สำหรับ op
นี้)notnull
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูล ไม่เป็นโมฆะ (พารามิเตอร์ val
โดย where()
สามารถละเว้นได้สำหรับ op
นี้)in
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดใน data มีอยู่ใน val ที่กำหนดหรือไม่ val ควรเป็น Array ธรรมดาnotin
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลไม่มีอยู่ใน val ที่กำหนด val ควรเป็น Array ธรรมดาstartswith
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลเริ่มต้นด้วย (มีคำนำหน้า) val ที่กำหนดหรือไม่ สิ่งนี้จะใช้ได้กับข้อมูลประเภท สตริง เท่านั้นendswith
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลลงท้ายด้วย (มีส่วนต่อท้าย) val ที่กำหนดหรือไม่ สิ่งนี้จะใช้ได้กับข้อมูลประเภท สตริง เท่านั้นcontains
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลมีสตริงย่อยของ val ที่กำหนดหรือไม่ สิ่งนี้จะใช้ได้กับข้อมูลประเภท สตริง เท่านั้นmatch
: ตรวจสอบว่าค่าของ คีย์ ที่กำหนดในข้อมูลมีการจับคู่นิพจน์ทั่วไปกับ val ที่กำหนดหรือไม่ พารามิเตอร์ val
ควรเป็น RegExp สำหรับ op
นี้macro
: มันจะพยายามจับคู่ค่าของ คีย์ ที่กำหนดในข้อมูลที่ดำเนินการ val
ที่กำหนด พารามิเตอร์ val
ควรเป็น Function สำหรับ op
นี้ ฟังก์ชันนี้ควรมีตรรกะที่ตรงกันอยู่ภายใน และส่งคืน ค่าจริง หรือ เท็จ ตามนั้นตัวอย่าง:
สมมติว่าคุณต้องการค้นหา 'ผู้ใช้' ที่มี id
เป็น 1
คุณสามารถทำได้เช่นนี้:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' users ' )-> where ( ' id ' , ' = ' , 1 )-> get ();
คุณสามารถเพิ่ม เงื่อนไข ได้หลายรายการ มันจะให้ผลลัพธ์โดย AND-ing ระหว่างเงื่อนไขหลายรายการเหล่านี้
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' users ' )
-> where ( ' id ' , ' = ' , 1 )
-> where ( ' location ' , ' = ' , ' barisal ' )
-> get ();
ดูตัวอย่างรายละเอียดได้ที่นี่
orWhere(key, op, val)
พารามิเตอร์ของ orWhere()
เหมือนกับ where()
ข้อแตกต่างระหว่าง where()
และ orWhere()
คือ เงื่อนไขที่กำหนดโดยเมธอด orWhere()
จะ OR-ed ผลลัพธ์พร้อมกับเงื่อนไขอื่นๆ
ตัวอย่างเช่น หากคุณต้องการค้นหาผู้ใช้ที่มี id เป็น 1
หรือ 2
คุณสามารถทำได้ดังนี้:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' users ' )
-> where ( ' id ' , ' = ' , 1 )
-> orWhere ( ' id ' , ' = ' , 2 )
-> get ();
ดูรายละเอียดตัวอย่างได้ที่นี่
whereIn(key, val)
key
-- ชื่อคุณสมบัติของข้อมูลval
-- มันควรจะเป็น อาร์เรย์ เมธอดนี้จะทำงานเหมือนกับการเรียกเมธอด where(key, 'in', val)
whereNotIn(key, val)
key
-- ชื่อคุณสมบัติของข้อมูลval
-- มันควรจะเป็น อาร์เรย์ เมธอดนี้จะทำงานเหมือนกับการเรียกเมธอด where(key, 'notin', val)
whereNull(key)
key
-- ชื่อคุณสมบัติของข้อมูล วิธีนี้จะทำงานเหมือนกับการเรียกเมธอด where(key, 'null')
หรือ where(key, '=', null)
whereNotNull(key)
key
-- ชื่อคุณสมบัติของข้อมูล เมธอดนี้จะทำงานเหมือนกับการเรียกเมธอด where(key, 'notnull')
หรือ where(key, '!=', null)
whereStartsWith(key, val)
key
-- ชื่อคุณสมบัติของข้อมูลval
-- ควรเป็น String เมธอดนี้จะทำงานเหมือนกับการเรียกเมธอด where(key, 'startswith', val)
whereEndsWith(key, val)
key
-- ชื่อคุณสมบัติของข้อมูลval
-- ควรเป็น String เมธอดนี้จะทำงานเหมือนกับการเรียกเมธอด where(key, 'endswith', val)
whereContains(key, val)
key
-- ชื่อคุณสมบัติของข้อมูลval
-- ควรเป็น String เมธอดนี้จะทำงานเหมือนกับการเรียกเมธอด where(key, 'contains', val)
sum(column)
column
-- ชื่อคุณสมบัติของข้อมูลตัวอย่าง:
สมมติว่าคุณต้องการหาผลรวมของ 'ราคา' ของ 'ผลิตภัณฑ์' คุณสามารถทำได้เช่นนี้:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
-> sum ( ' price ' );
หากข้อมูลที่คุณกำลังรวบรวมเป็นอาร์เรย์ธรรมดา คุณไม่จำเป็นต้องส่งพารามิเตอร์ 'คอลัมน์' ดูรายละเอียดตัวอย่างได้ที่นี่
count()
มันจะส่งคืนจำนวนองค์ประกอบในคอลเลกชัน
ตัวอย่าง:
สมมติว่าคุณต้องการค้นหาว่ามีองค์ประกอบจำนวนเท่าใดในคุณสมบัติ 'ผลิตภัณฑ์' คุณสามารถทำได้เช่น:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
-> count ();
ดูรายละเอียดตัวอย่างได้ที่นี่
size()
นี่เป็นวิธีนามแฝงของ count()
max(column)
column
-- ชื่อคุณสมบัติของข้อมูลตัวอย่าง:
สมมติว่าคุณต้องการค้นหา 'ราคา' สูงสุดของ 'ผลิตภัณฑ์' คุณสามารถทำได้เช่นนี้:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
->max('price);
หากข้อมูลที่คุณกำลังสืบค้นเป็นอาร์เรย์ธรรมดา คุณไม่จำเป็นต้องส่งพารามิเตอร์ 'column' ดูรายละเอียดตัวอย่างได้ที่นี่
min(column)
column
-- ชื่อคุณสมบัติของข้อมูลตัวอย่าง:
สมมติว่าคุณต้องการค้นหา 'ราคา' ขั้นต่ำของ 'ผลิตภัณฑ์' คุณสามารถทำได้เช่นนี้:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
-> min ( ' price ' );
หากข้อมูลที่คุณกำลังสืบค้นเป็นอาร์เรย์ธรรมดา คุณไม่จำเป็นต้องส่งพารามิเตอร์ 'property' ดูรายละเอียดตัวอย่างได้ที่นี่
avg(column)
column
-- ชื่อคุณสมบัติของข้อมูลตัวอย่าง:
สมมติว่าคุณต้องการหาค่าเฉลี่ยของ 'ราคา' ของ 'ผลิตภัณฑ์' คุณสามารถทำได้เช่นนี้:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
-> avg ( ' price ' );
หากข้อมูลที่คุณกำลังสืบค้นเป็นอาร์เรย์ธรรมดา คุณไม่จำเป็นต้องส่งพารามิเตอร์ 'column' ดูรายละเอียดตัวอย่างได้ที่นี่
first()
มันจะส่งคืนองค์ประกอบแรกของคอลเลกชัน
ตัวอย่าง:
$ q = new jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
-> first ();
ดูรายละเอียดตัวอย่างได้ที่นี่
last()
มันจะส่งคืนองค์ประกอบสุดท้ายของคอลเลกชัน
ตัวอย่าง:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
-> last ();
ดูรายละเอียดตัวอย่างได้ที่นี่
nth(index)
index
- ดัชนีขององค์ประกอบที่จะส่งคืนมันจะส่งคืนองค์ประกอบที่ n ของคอลเลกชัน หากดัชนีที่กำหนดเป็นค่า บวก ก็จะส่งคืนองค์ประกอบที่ n จากจุดเริ่มต้น หากดัชนีที่กำหนดเป็นค่า ลบ ก็จะส่งกลับองค์ประกอบที่ n จากจุดสิ้นสุด
ตัวอย่าง:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
-> nth ( 2 );
ดูรายละเอียดตัวอย่างได้ที่นี่
exists()
มันจะคืนค่า เป็นจริง หากองค์ประกอบไม่ ว่างเปล่า หรือไม่เป็น โมฆะ หรือ อาร์เรย์ว่างเปล่า หรือไม่ใช่ วัตถุว่างเปล่า
ตัวอย่าง:
สมมติว่าคุณต้องการค้นหาว่ามีองค์ประกอบจำนวนเท่าใดในคุณสมบัติ 'ผลิตภัณฑ์' คุณสามารถทำได้เช่น:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
-> exists ();
ดูรายละเอียดตัวอย่างได้ที่นี่
groupBy(column)
column
-- คุณสมบัติที่คุณต้องการจัดกลุ่มคอลเลกชันตัวอย่าง:
สมมติว่าคุณต้องการจัดกลุ่มข้อมูล "ผู้ใช้" ตามคุณสมบัติ "ตำแหน่ง" คุณสามารถทำได้เช่น:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' users ' )
-> groupBy ( ' location ' )
-> get ();
ดูรายละเอียดตัวอย่างได้ที่นี่
sort(order)
order
-- หากคุณข้ามคุณสมบัติ 'order' ข้อมูลจะถูกเรียงลำดับตามค่าเริ่มต้น จากน้อยไปหามาก คุณต้องส่ง 'desc' เป็นพารามิเตอร์ 'order' เพื่อจัดเรียงข้อมูลจาก มากไปน้อย นอกจากนี้คุณยังสามารถส่งฟังก์ชันการเปรียบเทียบในพารามิเตอร์ 'order' เพื่อกำหนดตรรกะของคุณเองเพื่อเรียงลำดับข้อมูลได้หมายเหตุ: วิธีนี้ควรใช้กับอาร์เรย์ธรรมดา หากคุณต้องการเรียงลำดับอาร์เรย์ของออบเจ็กต์ คุณควรใช้เมธอด sortBy() ที่อธิบายไว้ในภายหลัง
ตัวอย่าง:
สมมติว่าคุณต้องการเรียงลำดับข้อมูล 'arr' คุณสามารถทำได้เช่น:
$ q = new Jsonq ();
$ res = $ q -> collect ([ 7 , 5 , 9 , 1 , 3 ])
-> sort ();
ดูรายละเอียดตัวอย่างได้ที่นี่
sortBy(column, order)
column
-- คุณต้องส่งชื่อคอลัมน์ที่จะใช้ในการเรียงลำดับorder
-- หากคุณข้ามคุณสมบัติ 'order' ข้อมูลจะถูกเรียงลำดับตามค่าเริ่มต้น จากน้อยไปหามาก คุณต้องส่ง 'desc' เป็นพารามิเตอร์ 'order' เพื่อจัดเรียงข้อมูลจาก มากไปน้อย นอกจากนี้คุณยังสามารถส่งฟังก์ชันการเปรียบเทียบในพารามิเตอร์ 'order' เพื่อกำหนดตรรกะของคุณเองเพื่อเรียงลำดับข้อมูลได้หมายเหตุ: ควรใช้วิธีการนี้สำหรับอาร์เรย์ของวัตถุ หากคุณต้องการเรียงลำดับอาร์เรย์ธรรมดา คุณควรใช้วิธี sort() ที่อธิบายไว้ก่อนหน้านี้
ตัวอย่าง:
สมมติว่าคุณต้องการจัดเรียงข้อมูล 'ราคา' ของ 'ผลิตภัณฑ์' คุณสามารถทำได้เช่น:
$ q = new Jsonq ( ' data.json ' );
$ res = $ q -> from ( ' products ' )
-> where ( ' cat ' , ' = ' , 1 )
-> sortBy ( ' price ' , ' desc ' );
ดูรายละเอียดตัวอย่างได้ที่นี่
reset(data)
data
-- อาจเป็นพาธของไฟล์ JSON หรือสตริง JSON หรือวัตถุ JSON หากไม่มีข้อมูลถูกส่งผ่านในพารามิเตอร์ data
อินสแตนซ์ jsonQ
Object จะถูกรีเซ็ตเป็นข้อมูลที่เตรียมใช้งานก่อนหน้านี้เมื่อถึงจุดใดก็ตาม คุณอาจต้องการรีเซ็ตอินสแตนซ์ Object ให้เป็นชุดข้อมูลที่แตกต่างไปจากเดิมอย่างสิ้นเชิง จากนั้นจึงสืบค้นข้อมูลดังกล่าว คุณสามารถใช้วิธีนี้ในกรณีนั้น
ดูตัวอย่างรายละเอียดได้ที่นี่
copy()
มันจะส่งคืนโคลนที่สมบูรณ์ของอินสแตนซ์ Object
ดูตัวอย่างรายละเอียดได้ที่นี่
หากคุณพบข้อบกพร่องหรือปัญหาใดๆ อย่าลังเลที่จะเปิดปัญหาที่ GitHub
นอกจากนี้คุณยังสามารถส่งอีเมลถึงฉันที่ mailto:[email protected] เพื่อรับการกอดหรือข้อบกพร่อง
แพ็คเกจนี้รองรับภาษาที่แตกต่างกันด้วย
เฮ้เพื่อน! ช่วยฉันหน่อยเถอะ!