Я должен преобразовать строки формы
"a b c"
в массивы формы
Array
(
[0] => a
[1] => a b
[2] => a b c
[3] => b
[4] => b c
[5] => c
)
PHP обеспечивает собственную функцию для преобразования строк во все подстроки? В противном случае, каков путь наименьшего сопротивления для получения всех подстрок? Существует ли простой способ, возможно, взорвать () строку и использовать массив op для генерации всех [заказанных] перестановок?
Удачи!
Использование IN-PHP-Array-Is-Tod-Tape-of-The-Ulane Way: P
function get_all_substrings($input, $delim = '') {
$arr = explode($delim, $input);
$out = array();
for ($i = 0; $i < count($arr); $i++) {
for ($j = $i; $j < count($arr); $j++) {
$out[] = implode($delim, array_slice($arr, $i, $j - $i + 1));
}
}
return $out;
}
$subs = get_all_substrings("a b c", " ");
print_r($subs);
<?php
function get_all_substrings($input){
$subs = array();
$length = strlen($input);
for($i=0; $i<$length; $i++){
for($j=$i; $j<$length; $j++){
$subs[] = substr($input, $i, $j);
}
}
return $subs;
}
$subs = get_all_substrings("Hello world!");
print_r($subs);
?>
Даже если есть причудливый двухклассник для достижения этого, я сомневаюсь, что это все более эффективно или легко понять (для любого, чтобы кто-нибудь понять, что они, вероятно, должны будут посмотреть на документы. Большинство людей, вероятно, получают то, что делает Docster Даже глядя).
Вы не можете Post
Информационный перекрестный домен, поддомен или номер порта. Однако вы можете использовать JSONP, если у вас есть доступ к демону , так и запрашивающий сайт. Если данные должны быть возвращены, то демон
должен поддерживать параметр запросов
, и вернуть его правильно отформатированным.
Пройдите информацию на демон:
$.getJSON('http://domain.com:8080/url/here?callback=?', {
key: 'value',
otherKey: 'otherValue'
}, function(data){
// Handles the callback when the data returns
});
Теперь просто убедитесь, что ваш демон обрабатывает обратный вызов
. Например, если Callback = MyCallback
Возврат от демона (единственное, что записано на страницу), должна выглядеть так:
для пар клавиши / значения:
mycallback( {'returnkey':'returnvalue', 'other':'data' });
для массива:
mycallback( [1,2,3] );
Если у вас нет JSONP или аналогичного механизма на месте, вы не можете обмениваться пересеченным доменом, используя jQuery.
-121--1257088- Подстроки не являются перестановками. взорваться ()
строка, затем используйте два вложенных петель вместе с Array_slice ()
, чтобы получить соответствующие элементы.
Это некоторые из моих ссылок, но я хотел бы узнать больше:
-121--2861336-Они уже могут быть мыслей о массивах этой формы.
Просто обратитесь к содержимому с помощью функции, которая принимает индекс в качестве параметра и возвращает строку нарезанную соответствующим образом.
Для даже довольно коротких струн требования памяти и времени выполнения взорвутся. Даже в родном коде это страшно проблема производительности.
Оправдайте, почему вам нужна эта функция, и вы получите другой способ по всей проблеме.