<?php
$feedObj = simplexml_load_file("type.xml");
$arr = [];
foreach ($feedObj as $item):
foreach($item->bonus as $bonus):
$arr[(string)$item["name"]][(string)$bonus["id"]] = (string)$bonus["value"];
endforeach;
endforeach;
echo "<pre>";
var_dump($arr);
echo "</pre>";
array(2) {
["Зачарованные сапоги"]=>
array(9) {
[99]=>
string(9) "20.000000"
[256]=>
string(8) "0.650000"
[257]=>
string(8) "0.490000"
[2]=>
string(10) "210.000000"
[244]=>
string(8) "0.600000"
[248]=>
string(8) "0.520000"
[249]=>
string(8) "0.410000"
[304]=>
string(8) "1.000000"
[0]=>
string(8) "0.000000"
}
["Зачарованные поножи"]=>
array(9) {
[99]=>
string(9) "21.000000"
[256]=>
string(8) "0.580000"
[257]=>
string(8) "0.510000"
[2]=>
string(10) "410.000000"
[248]=>
string(8) "0.650000"
[249]=>
string(8) "0.550000"
[240]=>
string(8) "0.020000"
[304]=>
string(8) "1.000000"
[0]=>
string(8) "0.000000"
}
}
$posts = get_posts( array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'posts_per_page' => 10,
'orderby' => 'date'
) );
// получаем два случайных ключа из массива
$rand_keys = array_rand($posts, 2);
foreach ( $posts as $key => $post ) {
if ( in_array( $key, $rand_keys ) ) {
echo '<h2 class="post-title">' . $post->post_title . '</h2>';
}
}
function merge(...$arrays) {
$result = [];
foreach ($arrays as $arr) {
foreach ($arr as $key => $values) {
if (!isset($result[$key])) {
$result[$key] = [];
}
for ($i = 0; $i < count($values); $i++) {
$result[$key][$i] = ($result[$key][$i] ?? 0) + $values[$i];
}
}
}
return $result;
}
$arr = merge($arr1, $arr2);
Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2. Сложность алгоритма равна O(m*n), где n и m - длины строк str1 и str2 (неплохо по сравнению с similar_text(), имеющей сложность O(max(n,m)**3), но все же довольно много).
echo(levenshtein('abcdefg', 'amcdehg'));
$lines = [
'Продам клинок демона +6 / Солнцеликий плащ +2 тьма',
'Продам клинок демона +6, Солнцеликий плащщ +2тьма',
'Акция! Продам клинок демона +6, Солнцеликий плащ +2тьма',
'Продам клинок ангела +3, Луноликая куртка +4свет',
'Продам клинок ангелла +3, Луноликая куртка +4свет',
'Акция ! Продам клинок ангела +3, Луноликая куртка +4свет',
'тест акции',
'проверка демона',
'проверка ангела',
];
$res = [];
$allSimilar = [];
foreach ($lines as $line) {
$similarLines = [];
if(in_array($line, $allSimilar)) {
continue;
}
foreach ($lines as $line1) {
$lev = mb_levenshtein($line, $line1);
$maxDistance = (int)(0.2 * max(mb_strlen($line), mb_strlen($line1)));
if($lev <= $maxDistance) {
$similarLines[] = $line1;
$allSimilar[] = $line1;
}
}
$res[$line] = $similarLines;
}
print_r($res);
switch ($_GET['id']) {
case '0':
echo '<some html>';
break;
case '1':
echo '<some another html>';
break;
//... и т.д.
}
/*
No jQuery necessary.
Thanks to Dan's StackOverflow answer for this:
http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport
*/
function isElementInViewport(el) {
var rect = el.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document. documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document. documentElement.clientWidth)
);
}
$subId = $_REQUEST['subid'];
$url = array(
'http://site1.ru?subid='. $subId .'&subid1=land1',
'http://site2.ru?subid='. $subId .'&subid1=land2',
'http://site3.ru?subid='. $subId .'&subid1=land3'
);
$url = [
'http://site1.ru?subid=' . $someVar . '&subid1=land1',
'http://site2.ru?subid=' . $someVar . '&subid1=land2',
'http://site3.ru?subid=' . $someVar . '&subid1=land3'
];
var randomSlideId = Math.random() * 9 | 0
$('.multiple-items0777').slick({
// тут ваши параметры всякие и
initialSlide: +randomSlideId
});