function createTree($data, $levelKey, $childrenKey) {
$tree = [];
foreach ($data as $n) {
$arr = &$tree;
for ($level = $data[0][$levelKey]; $n[$levelKey] > $level; $level++) {
$arr = &$arr[count($arr) - 1][$childrenKey];
}
$arr[] = $n + [ $childrenKey => [] ];
}
return $tree;
}
$tree = createTree($arr, 'depth', 'children');function createTree($data, $params = []) {
$levelKey = $params['levelKey'] ?? 'level';
$childrenKey = $params['childrenKey'] ?? 'children';
$root = [];
$parents = [ $data[0][$levelKey] => &$root ];
foreach ($data as $n) {
$n[$childrenKey] = [];
$level = $n[$levelKey];
$p = &$parents[$level];
$p[] = $n;
$parents[-~$level] = &$p[~-count($p)][$childrenKey];
}
return $root;
}
$tree = createTree($arr, [ 'levelKey' => 'depth' ]);
preg_match('\/\/.+\?', $embed, $matches);echo $matches;$matches[0]
foreach ($arr as $itemName => $item) {
foreach ($item as $propName => $prop) {
foreach ($prop as $val) {
echo "$itemName : $val ; ($propName)<br>";
}
}
}
preg_replace('/(.)\1{2,}/', '\1', $str)забыл уточнить, нужно именно чтобы конкретно заменяло только двойки <...> на две двойки
preg_replace('/2{3,}/', '22', $str)
// или
preg_replace('/2+(?=22)/', '', $str)
$index = array_search($value, $arr);
$newArr = $index !== false ? array_slice($arr, $index + 1, 5) : [];
foreach ($arr1 as &$n1) {
foreach ($arr2 as $n2) {
if ($n1['id'] === $n2['id']) {
$n1['warns'] = $n2['warns'];
continue 2;
}
}
}
function isComposite($num) {
// нет, за вас я этого делать не буду, давайте как-нибудь сами...
// в конце концов, можно и нагуглить - это дело трёх секунд
}$newArr = array_filter($arr, 'isComposite');
const sum = str.match(/\d+/g).reduce((acc, n) => acc + +n, 0);
// или
let sum = 0;
for (const n of str.split(/\D+/)) {
sum += Number(n);
}
// или
const sum = eval(str.replace(/\|(\d+)\|/g, '+$1'));preg_match_all('/\d+/', $str, $matches);
$sum = array_sum($matches[0]);
// или
$sum = 0;
foreach (preg_split('/\D+/', $str) as $n) {
$sum += intval($n);
}
// или
eval('$sum = '.preg_replace('/\|(\d+)\|/', '+$1', $str).';');