Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
python week
Avatar
Pavel Soukup
Člen
Avatar
Pavel Soukup: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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Pavel Soukup
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.