PHP code example of nick-lai / associative-array
1. Go to this page and download the library: Download nick-lai/associative-array library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nick-lai / associative-array example snippets
use NickLai\AssociativeArray;
$data = [
['id' => 1001, 'category' => 'C', 'price' => 20],
['id' => 1002, 'category' => 'B', 'price' => 15],
['id' => 1003, 'category' => 'A', 'price' => 15],
['id' => 1004, 'category' => 'A', 'price' => 25],
['id' => 1005, 'category' => 'B', 'price' => 10],
];
$associativeArray = new AssociativeArray($data);
var_export([
'first' => $associativeArray->first(),
'last' => $associativeArray->last(),
'count' => $associativeArray->count(),
'sum(price)' => $associativeArray->sum('price'),
'avg(price)' => $associativeArray->avg('price'),
]);
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 30],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
var_export($associativeArray->select(['id', 'price'])->toArray());
var_export($associativeArray->select(['category', 'price'])->toArray());
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 30],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
$result = $associativeArray->where(function ($row) {
return $row['price'] > 10;
})->toArray();
var_export($result);
$associativeArray = new AssociativeArray([
1001 => ['id' => 1001, 'category' => 'C', 'price' => 30],
1002 => ['id' => 1002, 'category' => 'A', 'price' => 25],
1003 => ['id' => 1003, 'category' => 'B', 'price' => 10],
1004 => ['id' => 1004, 'category' => 'X', 'price' => 60],
]);
$categories = [
'A' => ['category' => 'A', 'desc' => 'A desc'],
'B' => ['category' => 'B', 'desc' => 'B desc'],
'C' => ['category' => 'C', 'desc' => 'C desc'],
'D' => ['category' => 'D', 'desc' => 'D desc'],
];
$result = $associativeArray->innerJoin($categories, function ($leftRow, $rightRow) {
return $leftRow['category'] === $rightRow['category'];
})->toArray();
var_export($result);
$associativeArray = new AssociativeArray([
1001 => ['id' => 1001, 'category' => 'C', 'price' => 30],
1002 => ['id' => 1002, 'category' => 'A', 'price' => 25],
1003 => ['id' => 1003, 'category' => 'B', 'price' => 10],
1004 => ['id' => 1004, 'category' => 'X', 'price' => 60],
]);
$categories = [
'A' => ['category' => 'A', 'desc' => 'A desc'],
'B' => ['category' => 'B', 'desc' => 'B desc'],
'C' => ['category' => 'C', 'desc' => 'C desc'],
'D' => ['category' => 'D', 'desc' => 'D desc'],
];
$result = $associativeArray->leftJoin($categories, function ($leftRow, $rightRow) {
return $leftRow['category'] === $rightRow['category'];
})->toArray();
var_export($result);
$associativeArray = new AssociativeArray([
1001 => ['id' => 1001, 'category' => 'C', 'price' => 30],
1002 => ['id' => 1002, 'category' => 'A', 'price' => 25],
1003 => ['id' => 1003, 'category' => 'B', 'price' => 10],
1004 => ['id' => 1004, 'category' => 'X', 'price' => 60],
]);
$categories = [
'A' => ['category' => 'A', 'desc' => 'A desc'],
'B' => ['category' => 'B', 'desc' => 'B desc'],
'C' => ['category' => 'C', 'desc' => 'C desc'],
'D' => ['category' => 'D', 'desc' => 'D desc'],
];
$result = $associativeArray->rightJoin($categories, function ($leftRow, $rightRow) {
return $leftRow['category'] === $rightRow['category'];
})->toArray();
var_export($result);
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
$result = $associativeArray->orderBy(['price', 'category'], ['desc', 'asc'])->toArray();
var_export($result);
$associativeArray = new AssociativeArray([
'X' => ['id' => 1001, 'category' => 'C', 'price' => 10],
'Y' => ['id' => 1002, 'category' => 'A', 'price' => 25],
'Z' => ['id' => 1003, 'category' => 'B', 'price' => 10],
]);
$result = $associativeArray->orderBy('category', 'asc', true)->toArray();
var_export($result);
array (
'Y' =>
array (
'id' => 1002,
'category' => 'A',
'price' => 25,
),
'Z' =>
array (
'id' => 1003,
'category' => 'B',
'price' => 10,
),
'X' =>
array (
'id' => 1001,
'category' => 'C',
'price' => 10,
),
)
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'B', 'price' => 30],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 30],
['id' => 1004, 'category' => 'A', 'price' => 30],
]);
$result = $associativeArray->groupBy(['category', 'price']);
var_export($result);
$data = [
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
];
var_export(AssociativeArray::make($data)->first());
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
var_export($associativeArray->first());
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
var_export($associativeArray->last());
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
var_export($associativeArray->count());
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
var_export($associativeArray->sum('price'));
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
var_export($associativeArray->avg('price'));
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
var_export($associativeArray->toArray());
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
var_export($associativeArray[0]);
$associativeArray = new AssociativeArray([
['id' => 1001, 'category' => 'C', 'price' => 10],
['id' => 1002, 'category' => 'A', 'price' => 25],
['id' => 1003, 'category' => 'B', 'price' => 10],
]);
foreach ($associativeArray as $row) {
echo $row['category'] . PHP_EOL;
}
array (
'first' =>
array (
'id' => 1001,
'category' => 'C',
'price' => 20,
),
'last' =>
array (
'id' => 1005,
'category' => 'B',
'price' => 10,
),
'count' => 5,
'sum(price)' => 85,
'avg(price)' => 17,
)
array (
0 =>
array (
'id' => 1001,
'price' => 30,
),
1 =>
array (
'id' => 1002,
'price' => 25,
),
2 =>
array (
'id' => 1003,
'price' => 10,
),
)
array (
0 =>
array (
'category' => 'C',
'price' => 30,
),
1 =>
array (
'category' => 'A',
'price' => 25,
),
2 =>
array (
'category' => 'B',
'price' => 10,
),
)
array (
0 =>
array (
'id' => 1001,
'category' => 'C',
'price' => 30,
),
1 =>
array (
'id' => 1002,
'category' => 'A',
'price' => 25,
),
)
array (
1001 =>
array (
'id' => 1001,
'category' => 'C',
'price' => 30,
'desc' => 'C desc',
),
1002 =>
array (
'id' => 1002,
'category' => 'A',
'price' => 25,
'desc' => 'A desc',
),
1003 =>
array (
'id' => 1003,
'category' => 'B',
'price' => 10,
'desc' => 'B desc',
),
)
array (
1001 =>
array (
'id' => 1001,
'category' => 'C',
'price' => 30,
'desc' => 'C desc',
),
1002 =>
array (
'id' => 1002,
'category' => 'A',
'price' => 25,
'desc' => 'A desc',
),
1003 =>
array (
'id' => 1003,
'category' => 'B',
'price' => 10,
'desc' => 'B desc',
),
1004 =>
array (
'id' => 1004,
'category' => 'X',
'price' => 60,
'desc' => NULL,
),
)
array (
'A' =>
array (
'category' => 'A',
'desc' => 'A desc',
'id' => 1002,
'price' => 25,
),
'B' =>
array (
'category' => 'B',
'desc' => 'B desc',
'id' => 1003,
'price' => 10,
),
'C' =>
array (
'category' => 'C',
'desc' => 'C desc',
'id' => 1001,
'price' => 30,
),
'D' =>
array (
'category' => 'D',
'desc' => 'D desc',
'id' => NULL,
'price' => NULL,
),
)
array (
0 =>
array (
'id' => 1002,
'category' => 'A',
'price' => 25,
),
1 =>
array (
'id' => 1003,
'category' => 'B',
'price' => 10,
),
2 =>
array (
'id' => 1001,
'category' => 'C',
'price' => 10,
),
)
array (
'B' =>
array (
30 =>
array (
0 =>
array (
'id' => 1001,
'category' => 'B',
'price' => 30,
),
1 =>
array (
'id' => 1003,
'category' => 'B',
'price' => 30,
),
),
),
'A' =>
array (
25 =>
array (
0 =>
array (
'id' => 1002,
'category' => 'A',
'price' => 25,
),
),
30 =>
array (
0 =>
array (
'id' => 1004,
'category' => 'A',
'price' => 30,
),
),
),
)
array (
'id' => 1001,
'category' => 'C',
'price' => 10,
)
array (
'id' => 1001,
'category' => 'C',
'price' => 10,
)
array (
0 =>
array (
'id' => 1001,
'category' => 'C',
'price' => 10,
),
1 =>
array (
'id' => 1002,
'category' => 'A',
'price' => 25,
),
2 =>
array (
'id' => 1003,
'category' => 'B',
'price' => 10,
),
)
array (
'id' => 1001,
'category' => 'C',
'price' => 10,
)