Naučit se PHP Naučit se PHP
Pouze tento týden až 80 % sleva na vývoj webů v PHP.
Extra 10 % bodů navíc a tričko zdarma při zadání kódu "TRIKO10"
Avatar
Jakub Štolbaa:13.5.2018 19:08

Ahoj, mám problém ohledně porovnávání řetězců. Potřeboval bych porovnat dva řetězce z databáze, vyhodit jestli jsou stejné nebo ne a pokud nebudou stejné tak vyhodit ty hodnoty, které nejsou obsaženy v jednom nebo druhém řetězci. např.

co tento řetězec:

a:4:{i:0;s:19­:"akismet/akis­met.php";i:2;s:­31:"plugincle­aner/pluginCle­aner.php";i:3;s:­17:"stolba/stol­ba.php";i:4;s:­27:"wp-super-cache/wp-cache.php";}

neobsahuje z tohoto řetězce:

a:2:{i:0;s:9:­"hello.php";i:1;s:­31:"plugincle­aner/pluginCle­aner.php";}

a vyhodit pouze toto i:0;s:9:"hello­.php"; jako výsledek.

Pokud někdo ví jak na to, budu velmi rád :) Děkuju.

Jakub Štolba

 
Odpovědět 13.5.2018 19:08
Avatar
Odpovídá na Jakub Štolbaa
Uživatel sítě :13.5.2018 20:24
<?php
$s = 'a:4:{i:0;s:19:"akismet/akismet.php";i:2;s:31:"plugincleaner/pluginCleaner.php";i:3;s:17:"stolba/stolba.php";i:4;s:27:"wp-super-cache/wp-cache.php";}';
$s2 = 'a:2:{i:0;s:9:"hello.php";i:1;s:31:"plugincleaner/pluginCleaner.php";}';

preg_match('~{(.*?)}~', $s, $m);
preg_match('~{(.*?)}~', $s2, $m2);
$e = explode(';', $m[1]);
$e2 = explode(';', $m2[1]);

$a = [];
foreach($e2 as $v){
  if(!in_array($v, $e)){
    $a[] = $v;
  }
}
var_dump($a);  //array(2) { [0]=> string(17) "s:9:"hello.php"" [1]=> string(3) "i:1" }
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 13.5.2018 20:24
Chybami se člověk učí, běžte se učit jinam!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.