Geek tričko zdarma Python týden
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Pouze tento sleva až 80% na kurzy Python

Diskuze: porovnávání řetězců

Aktivity (2)
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
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.